UDP Socket编程 C/C++实现 (Windows Platform SDK)
来源:互联网 发布:win7网络共享无法访问 编辑:程序博客网 时间:2024/04/30 13:58
挺无聊一小程序,俩SB一人说一句,据说聊天程序最好用UDP写。 Server:Client:
- #pragma comment (lib,"ws2_32.lib")
- #include <Winsock2.h>
- #include <stdio.h>
- void main()
- {
- //版本协商
- WORD wVersionRequested;
- WSADATA wsaData;
- int err;
- wVersionRequested = MAKEWORD( 1, 1 );
- err = WSAStartup( wVersionRequested, &wsaData );
- if ( err != 0 ) {
- /* Tell the user that we could not find a usable */
- /* WinSock DLL. */
- return;
- }
- /* Confirm that the WinSock DLL supports 2.2.*/
- /* Note that if the DLL supports versions greater */
- /* than 2.2 in addition to 2.2, it will still return */
- /* 2.2 in wVersion since that is the version we */
- /* requested. */
- if ( LOBYTE( wsaData.wVersion ) != 1 ||
- HIBYTE( wsaData.wVersion ) != 1) {
- /* Tell the user that we could not find a usable */
- /* WinSock DLL. */
- WSACleanup( );
- return;
- }
- /* The WinSock DLL is acceptable. Proceed. */
- //创建数据报套接字
- SOCKET svr = socket(AF_INET,SOCK_DGRAM,0);
- //创建本地地址信息
- SOCKADDR_IN addr;
- addr.sin_family = AF_INET;
- addr.sin_port = htons(6000);
- addr.sin_addr.S_un.S_addr = htonl(INADDR_ANY);
- int len = sizeof(sockaddr);
- bind(svr,(sockaddr*)&addr,len);
- //创建客户端地址对象
- SOCKADDR_IN addrClient;
- char recvBuf[128];
- char sendBuf[128];
- char tempBuf[256];
- while(true)
- {
- //接收数据
- recvfrom(svr,recvBuf,128,0,(sockaddr*)&addrClient,&len);
- char* ipClient = inet_ntoa(addrClient.sin_addr);
- sprintf(tempBuf,"%s said: %s/n",ipClient,recvBuf);
- printf("%s",tempBuf);
- gets(sendBuf);
- //发送数据
- sendto(svr,sendBuf,strlen(sendBuf)+1,0,(sockaddr*)&addrClient,len);
- }
- closesocket(svr);
- WSACleanup();
- }
- #pragma comment (lib,"ws2_32.lib")
- #include <Winsock2.h>
- #include <stdio.h>
- void main()
- {
- //版本协商
- WORD wVersionRequested;
- WSADATA wsaData;
- int err;
- wVersionRequested = MAKEWORD( 1, 1 );
- err = WSAStartup( wVersionRequested, &wsaData );
- if ( err != 0 ) {
- /* Tell the user that we could not find a usable */
- /* WinSock DLL. */
- return;
- }
- /* Confirm that the WinSock DLL supports 2.2.*/
- /* Note that if the DLL supports versions greater */
- /* than 2.2 in addition to 2.2, it will still return */
- /* 2.2 in wVersion since that is the version we */
- /* requested. */
- if ( LOBYTE( wsaData.wVersion ) != 1 ||
- HIBYTE( wsaData.wVersion ) != 1 ) {
- /* Tell the user that we could not find a usable */
- /* WinSock DLL. */
- WSACleanup( );
- return;
- }
- /* The WinSock DLL is acceptable. Proceed. */
- //创建服务器套接字
- SOCKET Svr = socket(AF_INET,SOCK_DGRAM,0);
- //创建地址
- SOCKADDR_IN addrSvr;
- addrSvr.sin_family = AF_INET;
- addrSvr.sin_port = htons(6000);
- addrSvr.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
- char recvBuf[128];
- char sendBuf[128];
- int len = sizeof(sockaddr);
- while(true)
- {
- gets(sendBuf);
- //发送数据
- sendto(Svr,sendBuf,strlen(sendBuf)+1,0,(sockaddr*)&addrSvr,len);
- //接收数据
- recvfrom(Svr,recvBuf,128,0,(sockaddr*)&addrSvr,&len);
- char* ipSvr = inet_ntoa(addrSvr.sin_addr);
- printf("%s said: %s/n",ipSvr,recvBuf);
- }
- closesocket(Svr);
- WSACleanup();
- }
0 0
- UDP Socket编程 C/C++实现 (Windows Platform SDK)
- UDP Socket编程 C/C++实现 (Windows Platform SDK)
- UDP Socket编程 C/C++实现 (Windows Platform SDK)
- TCP/UDP Socket编程 C/C++实现(Windows Platform SDK)
- TCP Socket编程 C/C 实现 (Windows Platform SDK)
- TCP Socket编程 C/C++实现 (Windows Platform SDK)
- CP Socket编程 C/C++实现 (Windows Platform SDK)
- TCP Socket编程 C/C++实现 (Windows Platform SDK)
- TCP Socket编程 C/C++实现 (Windows Platform SDK)
- TCP socket编程 C/C++实现(windows platform SDK)
- Mutex线程同步 (C/C++ Windows Platform SDK 实现)
- UDP Socket编程(C++)
- C#-Socket编程-UDP
- UDP Socket编程 C/C++实现
- iOS Socket编程-C语言版(UDP)
- iOS Socket编程-C语言版(UDP)
- Critical Section 线程同步 (C/C++ Windows Platform SDK 实现)
- windows下C调用socket实现TCP和UDP通信
- 【J2EE浅析】——JDBC
- SQL应用与开发:(五)多个数据表的连接
- C#作业第一期,简单的源代码计算器
- CSS工作流
- 常用类"二"(Math,Random,System)
- UDP Socket编程 C/C++实现 (Windows Platform SDK)
- 第4周-项目2-对象作为数据成员-三角形类
- Android中如何使用View填充在多个TextView之间使之等间距
- mvc思想
- 未能加载文件或程序集"System.Data,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089"或它的某一个依赖项。系统找
- nginx禁止访问某个后缀名的文件
- Linux 内核启动过程分析----zImage自解压
- ObjectiveC类的使用
- 第4周-项目3-用多文件组织多个类的程序-三角形类