linux網路程式設計 初探TCP

2021-06-23 04:52:13 字數 2115 閱讀 4391

伺服器端等待客戶端連線,連線成功後,列印客戶端的ip和port,然後迴圈接收資料,緩衝區無資料就阻塞待待。

#include #include #include #include #include #include #include #include #include #include #define maxbuf	10					// 緩衝區大小

#define default_port 8888 // 預設埠

#define default_msgnum 1000 // 最大連線數量

int main(int argc,char *argv)

/* 2. bind */

addrserver.sin_family = af_inet; /* ipv4 */

if(argv[1]) /* 命令列輸入了ip addr */

else /* 本機任ip */

if(argv[2]) /* 命令列輸入了埠號 */

else /* 採用預設埠 */

/* 3. bind */

ret = bind(fd_socket, (struct sockaddr *)&addrserver, sizeof(struct sockaddr) );

if(ret == -1)

/* 4. listen */

if( listen(fd_socket,default_msgnum) == -1 )

printf(" server create success,server ip: %s::%d \n",inet_ntoa(addrserver.sin_addr),ntohs(addrserver.sin_port));

printf(" server wait for connect.......\n");

/* 4. accept */

len = sizeof(struct sockaddr);

new_fd = accept(fd_socket, (struct sockaddr *)&addrclient, &len);

if( new_fd == -1 )

else /* listen監聽到有連線,accept返回描述符 */

while(1)

else if(len < 0) // 異常

else // 接收到資料

}close(fd_socket);

return 0;

}

客戶端連線伺服器,連線成功後迴圈接收緩衝區資料,有資料輸入,則讀取傳送給伺服器端。

#include #include #include #include #include #include #include #include #include #include #define buffer_size 1024

int main(int argc,char *argv)

/* 1. 建立乙個socket */

fd_socket = socket(af_inet, sock_stream, 0);

if(fd_socket < 0)

/* 2. connect */

bzero(&addrserver,sizeof(addrserver));

addrserver.sin_family = af_inet; /* 位址協議 */

addrserver.sin_addr.s_addr = inet_addr(argv[1]);

addrserver.sin_port = htons( atoi(argv[2]) );

res = connect(fd_socket, (struct sockaddr *)&addrserver, sizeof(addrserver) );

if(res == -1)

printf("connect server success\n");

while(1)

len = send(fd_socket,buf,strlen(buf) - 1, 0);

if(len < 0)

}close(fd_socket);

return 0;

}

Linux 網路程式設計 TCP

一 tcp通訊步驟 tcp伺服器部分 1 呼叫函式socket 建立乙個socket 2 設定sockaddr in資訊,如要連線伺服器的ip和埠等屬性 3 呼叫函式bind 繫結ip位址 埠等資訊到socket上 4 呼叫函式listen 設定允許的最大連線數 5 呼叫函式accept 等待來自客...

Linux 網路程式設計(TCP)

include include include include include include include include int main int argc,char argv bzero server addr,sizeof struct sockaddr in server addr.si...

Socket網路程式設計初探

為何學習socket一定要先學習網際網路協議 c s架構的軟體是基於網路進行通訊的 網路的核心就是一堆協議,即標準,想要開發一款基於網路通訊的軟體就必須遵循這些標準 socket是處在應用層和傳輸層中間的一組介面 說到這,那麼socket到底是個什麼呢?socket是應用層與tcp ip協議族通訊的...