socket udp
来源:互联网 发布:淘宝开店押金多少 编辑:程序博客网 时间:2024/06/09 14:31
//Server 端程序源代码: #include <stdio.h> #include <Winsock2.h>#pragma comment (lib, "ws2_32") #include <thread> struct sockaddr_in from; int fromlen =sizeof(from); void recvFunction(SOCKET& sockClient) { while (true) { char buffer[1024]="\0"; printf("waiting for message from others-------------\n"); if (recvfrom(sockClient,buffer,sizeof(buffer),0,(struct sockaddr*)&from,&fromlen)!=SOCKET_ERROR) { printf("Received datagram from %s--%s\n",inet_ntoa(from.sin_addr),buffer); ////给cilent发信息 sendto(sockClient,buffer,sizeof(buffer),0,(struct sockaddr*)&from,fromlen); } } }void sendFuction(SOCKET &sockConn) { while (true) { } } void main() { SOCKET socket1; //InitWinsock(); WSADATA wsaData; int iErrorCode; if (WSAStartup(MAKEWORD(2,1),&wsaData)) //调用Windows Sockets DLL { printf("Winsock无法初始化!\n"); WSACleanup(); return; } printf("服务器开始创建SOCKET。\n"); struct sockaddr_in local; local.sin_family=AF_INET; local.sin_port=htons(27015); ///监听端口 local.sin_addr.s_addr=INADDR_ANY; ///本机 socket1=socket(AF_INET,SOCK_DGRAM,0); bind(socket1,(struct sockaddr*)&local,sizeof(local)); std::thread recvThread(recvFunction,socket1); recvThread.detach(); std::thread sendThread(sendFuction,socket1); sendThread.detach(); while (1) { } closesocket(socket1);WSACleanup(); }
//Client端源代码: #include <stdio.h> #include <Winsock2.h> #pragma comment (lib, "ws2_32") #include <thread> struct sockaddr_in server;int len =sizeof(server); void recvFunction(SOCKET& sockClient) { while (true) { char recvBuf[50]; if(recvfrom(sockClient,recvBuf,50,0,(struct sockaddr*)&server,&len) != SOCKET_ERROR){printf("rece from server:%s\n",recvBuf); }} }void sendFuction(SOCKET &sockConn) { while (true) { char buffer[1024]="\0"; printf("input message\n"); scanf("%s",buffer); // printf("%s",buffer); if (strcmp(buffer,"bye")==0) { printf("退出!\n"); Sleep(100); closesocket(sockConn); break; } if (sendto(sockConn,buffer,sizeof(buffer),0,(struct sockaddr*)&server,len)!=SOCKET_ERROR) { } } } void main() { SOCKET socket1; //InitWinsock(); WSADATA wsaData; int iErrorCode; if (WSAStartup(MAKEWORD(2,1),&wsaData)) //调用Windows Sockets DLL { printf("Winsock无法初始化!\n"); WSACleanup(); return; } printf("服务器开始创建SOCKET。\n"); server.sin_family=AF_INET; server.sin_port=htons(27015); ///server的监听端口 server.sin_addr.s_addr=inet_addr("192.168.0.148"); ///server的地址 socket1=socket(AF_INET,SOCK_DGRAM,0); //多线程 std::thread recvThread(recvFunction,socket1); recvThread.detach(); std::thread sendThread(sendFuction,socket1); sendThread.detach(); while (1) { } closesocket(socket1);WSACleanup(); }
0 0
- socket udp
- socket UDP
- socket udp
- UDP Socket
- SOCKET UDP
- UDP Socket
- udp socket
- socket udp
- udp socket
- udp socket
- Socket-UDP
- UDP socket
- socket(UDP)
- socket udp
- socket udp
- udp socket
- udp socket
- java udp socket
- ABAP-访问Domain的ValueRange
- 鸟书shell 学习笔记(一) shell中的重点概念以及命令
- Python(一)MySQLdb模块安装
- div css 基础
- 技术人生之四: 命苦不能怨政府
- socket udp
- Ant 安装 (1.9.4 Windows)
- CXF发布WebService使用SoapUI测试
- 思念的我总把你挂记
- 持续集成”也需要重构——持续集成实践在Cruise开发过程中的演进
- java命令执行jar包的方式
- jquery 获取input name属性的值
- AIX查看内存,CPU配置信息
- C和指针(4)函数