伺服器端等待客戶端連線,連線成功後,列印客戶端的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協議族通訊的...