server端:
[cpp]view plain
copy
#include
#include
#include
#include
#include
#include
#include
intserverport = 8000;
intmain()
//建立ipv4位址
bzero(&listeningsockaddr,sizeof
(listeningsockaddr));
listeningsockaddr.sin_family = af_inet;
listeningsockaddr.sin_addr.s_addr = htonl(inaddr_any);//監聽所有ip位址
listeningsockaddr.sin_port = htons(serverport);
//繫結socket
if(bind(listeningsock,(
struct
sockaddr *)&listeningsockaddr,
sizeof
(listeningsockaddr)) == -1)
//監聽client端
if(listen(listeningsock,20) == -1)
while
(1)
printf("客戶端的ip:%s,埠號:%d\n"
,inet_ntoa(clientsockaddr.sin_addr),clientsockaddr.sin_port);
//接收client端傳來的資訊
clientstrlen = recv(comunicatesock,clientstr,100,0);
clientstr[clientstrlen] = '\0'
; printf("received %d characters from client,the string is:%s\n"
,clientstrlen,clientstr);
//分析處理client端傳來的資訊
if(clientstrlen > 0)
//將處理過的資訊返回給client端
toclientbuflen = strlen(toclientbuf);
if(send(comunicatesock,toclientbuf,toclientbuflen,0) == -1)
//關閉與client端的連線
close(comunicatesock);
} return
0;
}
client端:
[cpp]view plain
copy
#include
#include
#include
#include
#include
#include
#include
#include
intserverport = 8000;
intmain(
intargc,
char
*argv)
else
/*建立server ipv4位址 */
bzero(&serversock,sizeof
(serversock));
serversock.sin_family = af_inet;
serversock.sin_addr.s_addr = inet_addr("127.0.0.1"
);
serversock.sin_port = htons(serverport);
/* 建立socket */
bindingserveraddrsock = socket(af_inet,sock_stream,0);
if(bindingserveraddrsock == -1)
/*連線server */
if(connect(bindingserveraddrsock,(
void
*)&serversock,
sizeof
(serversock)) == -1)
/*將str字串傳給 server */
printf("sending message %s to server ...\n"
,str);
if(send(bindingserveraddrsock,str,strlen(str),0) == -1)
/*接收server回傳的資訊 */
if(recv(bindingserveraddrsock,buf,8192,0) == -1)
printf("\nresponse these from server :%s\n"
,buf);
close(bindingserveraddrsock);
return
0;
}
C語言實現socket通訊TCP 程式參考
開發環境 centos7 編譯 gcc 先執行服務端,再執行客戶端。連線完畢,客戶端可以傳送訊息。客戶端傳送了 1 服務端收到訊息並列印,此時輪到服務端傳送訊息。服務端傳送訊息 2 客戶端收到訊息也進行列印,之後不斷重複。在客戶端 服務端等待對方傳送訊息的同時,並沒有限制其繼續輸入訊息。所以會有下圖...
c語言實現TCP socket通訊
tcp面向位元組流傳輸資料,提供可靠的資料傳輸服務。通過tcp傳送的資料無差錯 不丟失 不重 復,而且按序到達。由於tcp是基於連線的,所以每一條tcp連線只能是點到點的互動通訊。伺服器端初始化winsock環境後,便呼叫socket函式建立流式套接字 然後對sockaddr in結構體進行設 置,...
socket簡單程式設計 C語言實現
include include include 緩衝區溢位會怎麼樣?intmain 判斷請求載入的版本號的是否符合要求if lobyte wsadata.wversion 2 hibyte wsadata.wversion 2 設定伺服器位址 server add.sin family af ine...