簡單的socket聊天程式

2021-08-22 04:33:57 字數 1805 閱讀 3494

伺服器:

#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...