UDP Socket编程 C/C++实现 (Windows Platform SDK)
挺无聊一小程序,俩SB一人说一句,据说聊天程序最好用UDP写。 Server:
- #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();
- }
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 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();
- }
UDP Socket编程 C/C++实现 (Windows Platform SDK)相关推荐
- linux系统udp通信程序,Linux UDP socket编程(UDP通讯模型) | C/C++程序员之家
Linux UDP socket编程(UDP通讯模型): UDPClient + UDPService. Linux下大多数网络程序都是基于TCP的,很少基于UDP,简单的通讯模型如下,开发时候备用! ...
- 【techQA】安装Windows Platform SDK v7.1出现提示Some Windows SDK components require the RTM .NET Framework 4
[techQ&A]安装Windows Platform SDK v7.1出现提示Some Windows SDK components require the RTM .NET Framewo ...
- Java TCP/UDP socket 编程流程总结
最近正好学习了一点用java socket编程的东西.感觉整体的流程虽然不是很繁琐,但是也值得好好总结一下. Socket Socket可以说是一种针对网络的抽象,应用通过它可以来针对网络读写数据.就 ...
- python(18):网络编程(七层协议+tcp/udp+socket编程)
Python作为最热门的语言,使我们每个人应该学习的一门技术! 本文针对初学者,我会用最容易的方式告诉你如何入门python! 一.基本网络概念 1.计算机之间如何进行联机 早期: 以太网:局域网与交 ...
- 【Java】UDP Socket编程案例——文件传输聊天工具
UDP(用户数据报协议)就像日常生活中的邮件投递,是不能保证可靠地寄到目的地.UDP是无连接的,对系统资源的要求较少,UDP可能丢包,也不保证数据顺序.但是对于网络游戏和在线视频等要求传输快,实时性高 ...
- tcp/udp socket编程异同
一.TCP与UDP的区别 基于连接与无连接 对系统资源的要求(TCP较多,UDP少) UDP程序结构较简单 流模式与数据报模式 TCP保证数据正确性,UDP可能丢包 TCP保证数据顺序,UDP不保证 ...
- UDP socket编程中使用connect
转自:http://hi.baidu.com/rwen2012/item/545a39ba741307d085dd7957 标准的udp客户端开了套接口后,一般使用sendto和recvfrom函数来 ...
- UDP socket 编程学习笔记
UDP编程的基本流程 UDP是无连接.不可靠的数据报协议,不同于TCP的面向连接的可靠数据流.UDP编程常见的应用包括:DNS域名服务器.NFS网络文件系统.SNMP简单网络管理协议. 客户端不必与服 ...
- Linux下C语言实现UDP Socket编程
该博文参考了Linux C socket 编程之UDP一文,在这里表示感谢! 发送方: /* * File: udp_sender.c* Author: Henry** Created on 2019 ...
最新文章
- 第七篇:循环神经网络
- 为何大多数人做出来的图表只是一坨屎?
- python xlsx 图片_实例11:用Python给Excel所有工作表添加图片
- CSS——京东首页实战总结
- C#数据结构-双链表
- java 建立一个graphics对象_java – 我应该显式处理Graphics对象吗?
- Atom飞行手册翻译: 2.4 编辑和删除文本
- LeetCode(733)——图像渲染(JavaScript)
- python的setdefault方法
- 高并发、高性能 Web 架构
- 微信 JSAPI 支付流程
- 档案管理制度计算机管理制度,档案管理制度保密制度
- 浅谈测试小白到测试大牛的成长历程(分四个境界)
- 电脑录像,笔记本电脑录像功能_笔记本电脑 录像
- 健康低辐射,信号全覆盖,飞鱼星i-Home覆盖方案上市
- 十一黄金周旅游线路排行榜(图文)
- 一种解决退出远程桌面后,电脑自动睡眠的方法
- Python学习摘录(自用)
- EasyUI上传图片,前台预览,后台读取
- hutool工具类生成二维码案例
热门文章
- python2048游戏代码_【Python】用Python实现2048小游戏(源代码,1.0版本)
- aop+注解 实现对实体类的字段校验_SpringBoot实现通用的接口参数校验
- 网络交换机功能和原理详解
- [渝粤教育] 西南科技大学 现代企业管理 在线考试复习资料
- 【渝粤题库】陕西师范大学202091公共管理学原理 作业(高起本、专升本)
- 【指南】远程抄表系统(AMR/AMI)中无线模块选型
- mysql 强制读主库_laravel(lumen)配置读写分离后,强制读主(写)库数据库,解决主从延迟问题...
- 2017计算机信息技术,2017年一级计算机信息技术及应用考试试题级答案[权威资料]...
- linux下部署mysql数据库连接_Linux远程部署MySQL数据库详细步骤
- Win10窗口侧边栏设置Win7模式