基於UDP的簡單聊天程式

2021-06-12 22:09:57 字數 1761 閱讀 8457

#pragma comment(lib,"ws2_32.lib")

#include 

#include 

void main()

if(lobyte(wsadata.wversion) != 1 ||

hibyte(wsadata.wversion) != 1)  

socket socksrv = socket(af_inet, sock_dgram, 0);

sockaddr_in addrsrv;

addrsrv.sin_addr.s_un.s_addr = htonl(inaddr_any);

addrsrv.sin_family = af_inet;

addrsrv.sin_port = htons(6000);

bind(socksrv, (sockaddr*)&addrsrv, sizeof(sockaddr));

char recvbuf[100];

char sendbuf[100];

char tempbuf[200];

sockaddr_in addrclient;

int len = sizeof(sockaddr);

while(1)

sprintf(tempbuf, "%s say:%s\n", inet_ntoa(addrclient.sin_addr),recvbuf);

printf("%s\n",tempbuf);

printf("please input data:\n");

gets(sendbuf);

sendto(socksrv, sendbuf, strlen(sendbuf) + 1, 0, (sockaddr*)&addrclient, len);

}closesocket(socksrv);

wsacleanup();

}

編緝推薦閱讀以下文章

下面編寫聊天客戶端程式,實現**如:

chat client

#pragma comment(lib,"ws2_32.lib")

#include 

#include 

void main()

if(lobyte(wsadata.wversion) != 1 ||

hibyte(wsadata.wversion) != 1)  

socket sockclient = socket(af_inet, sock_dgram, 0);

sockaddr_in addrsrv;

addrsrv.sin_addr.s_un.s_addr = inet_addr("127.0.0.1");

addrsrv.sin_family = af_inet;

addrsrv.sin_port = htons(6000);

char recvbuf[100];

char sendbuf[100];

char tempbuf[200];

int len = sizeof(sockaddr);

while(1)

sprintf(tempbuf, "%s say:%s\n", inet_ntoa(addrsrv.sin_addr), recvbuf);

printf("%s\n", tempbuf);

}closesocket(sockclient);

wsacleanup();

}

這樣我們就實現了乙個非常簡單的基於udp的網路聊天程式。

基於UDP簡單聊天程式

server.c include include include include include include include include include include define server port 8888 define max msg size 1024 void udps re...

基於UDP聊天室程式

基於udp聊天室程式使用socket程式設計實現。windows套接字在兩種模式下執行i o操作,阻塞和非阻塞。在阻塞模式下,在i o操作完成前,執行操作的winsock函式會一直等待下去 如recvfrom,wsarecvfrom函式 不會立即返回程式 將控制權交還給程式 而在非阻塞模式下,win...

基於socket的簡單聊天程式(一)

最近工作比較閒,就學習了socket程式設計的基礎知識,動手編寫了乙個功能最簡單的區域網聊天程式 乙個客戶端,乙個服務端。常用函式功能簡介 wsastartup 在乙個程序初始化 ws2.dll 動態庫。int wsastartup word wversionrequested,所需版本號 lpws...