UDP连接代码
由于只有部分代码,自己填不上.......程序未能运行成功,悲剧!
server:
1 SOCKET s = ::socket(AF_INET,SOCK_DGRAM,IPPROTO_TCP); 2 if(s == INVALID_SOCKET) 3 { 4 printf("Failed socket()\n"); 5 return 0; 6 } 7 //填充sockaddr_in结构 8 sockaddr_in sin; 9 sin.sin_family = AF_INET; 10 sin.sin_port = htons(4567); 11 sin.sin_addr.S_un.S_addr = INADDR_ANY; 12 //绑定这个套接字的一个本地地址 13 if(::bind(s,(LPSOCKADDR)&sin,sizeof(sin)) == SOCKET_ERROR) 14 { 15 printf("Failed bind()\n"); 16 return 0; 17 } 18 //进入监听模式 19 if(::listen(s,2) == SOCKET_ERROR) 20 { 21 printf("Failed listen()\n"); 22 return 0; 23 } 24 //接收数据 25 char buff[1024]; 26 sockaddr_in addr; 27 int nLen = sizeof(addr); 28 while(TRUE) 29 { 30 int nRecv = ::recvfrom(s,buff,1024,0,(sockaddr*)&addr,&nLen); 31 if(nRecv > 0) 32 { 33 buff[nRecv] = '\0'; 34 printf("接收到数据 (%s):%s",::inet_ntoa(addr.sin_addr),buff); 35 } 36 } 37 ::closesocket(s);
client:
1 sockaddr_in addr; 2 addr.sin_family=AF_INET; 3 addr.sin_port=htons(4567); 4 addr.sin_addr.S_un.S_addr=inet_addr("49.140.16.244"); 5 //发送数据 6 char szText[] = "TCP Server Demo!\r\n"; 7 ::sendto(s,szText,strlen(szText),0,(sockaddr*)&addr,sizeof(addr));
只能这样了,日后再说
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?