伺服器:
#include #include #include #include #include #include #include #include #define port 18888 /*埠*/
#define buflen 1024 /*快取區大小*/
#define listennum 20 /*socket最大監聽數*/
int main(int argc,char** argv)
printf("[crissleung] socket create success!\n");
memset(&s_addr,0,sizeof(s_addr));
/*定義s_addr 的sockaddr_in結構體資料*/
s_addr.sin_family = af_inet; /*該屬性表示接收本機或其他機器傳輸*/
s_addr.sin_port = htons(port); /*埠號*/
s_addr.sin_addr.s_addr = htons(inaddr_any); /*ip,括號內容表示本機ip*/
printf("[crissleung] socket start bind!\n");
//繫結位址結構體和socket,成功返回0,出錯返回-1
if(bind(sockfd,(struct sockaddr*)&s_addr,sizeof(struct sockaddr))<0)
//開啟監聽 ,第二個引數是最大監聽數,成功返回0,出錯返回-1
printf("[crissleung] socket bind success!\n");
listen(sockfd, listennum);
printf("[crissleung] socket listen success!\n");
while(1)
else
// fputs(buffer, stdout);
memset(buffer,0,sizeof(buffer));
printf("[remote]:");
gets(buffer);
printf("\n");
/*傳送內容,引數分別是連線控制代碼,內容,大小,其他資訊(設為0即可)*/
send(newfd, buffer, strlen(buffer), 0);}}
}}
客戶端:
結構注釋參考上述服務端
#include#include#include#include#include#include#include#include#define dest_port 18888
#define dest_ip "47.95.231.165"
#define max_data 1024
int main()
dest_addr.sin_family=af_inet;
dest_addr.sin_port=htons(dest_port);
dest_addr.sin_addr.s_addr=inet_addr(dest_ip);
bzero(&(dest_addr.sin_zero),8);
if(connect(sockfd,(struct sockaddr*)&dest_addr,sizeof(struct sockaddr))==-1)
else
}close(sockfd);
return 0;
}
相關資料 基於socket的簡單聊天程式(一)
最近工作比較閒,就學習了socket程式設計的基礎知識,動手編寫了乙個功能最簡單的區域網聊天程式 乙個客戶端,乙個服務端。常用函式功能簡介 wsastartup 在乙個程序初始化 ws2.dll 動態庫。int wsastartup word wversionrequested,所需版本號 lpws...
簡單的socket聊天
直接上 public class server public void init catch exception e 開啟乙個新的執行緒處理連線 private class handlerthread implements runnable public void run catch excepti...
簡單的Socket聊天程式(客戶端)
using system using system.windows.forms using system.net using system.net.sockets namespace socketclient stathread public static void main string args...