UDP简单通讯
2015-08-11 10:34
363 查看
发送信息
接收信息
测试结果:
#include <WinSock2.h> #include <iostream> #pragma comment(lib,"ws2_32.lib") using namespace std; const short PORT = 8008;//发送信息的端口 int main() { WSADATA wd; //socket初始化 int a = WSAStartup(0x0202, &wd); //每一个socket函数都可能失败,每次都可以获取错误码 SOCKET sc = socket(AF_INET,SOCK_DGRAM,0); if (INVALID_SOCKET == sc) { cout <<"Socket 套接字创建失败!"<<endl; cout <<"错误码:"<< WSAGetLastError() <<endl; } //struct sockaddr * sockaddr_in sa = {AF_INET, PORT}; //发布自己的端口,将套接字和机器上的一定的端口关联起来 int bi = bind(sc, (sockaddr*)&sa, sizeof(sa)); //sc:代表套接字, &sa:IP或端口地址 if (SOCKET_ERROR == bi) { cout <<"bind绑定端口失败!"<<WSAGetLastError()<<endl; } sockaddr_in sb = {AF_INET,8009}; <strong>//接收信息端口</strong> sb.sin_addr.S_un.S_addr = inet_addr("192.168.0.102");//该函数将四段文字转换为一个整数,这里的IP地址可以换成自己的 //向某一个端口发送数据 char s[256]; while (true) { printf("输入要发送的内容!\n"); //cin >> s; //这里cin会将输入的空格过滤掉 <span style="white-space:pre"> </span>gets(s); //使用gets()函数则不会出现这种问题 sendto(sc, s, strlen(s), 0, (sockaddr*)&sb, sizeof(sb)); } return 0; }
接收信息
#include <WinSock2.h> #include <iostream> #pragma comment(lib,"ws2_32.lib") using namespace std; const short PORT = 8009;//接收信息的端口 int main() { WSADATA wd; //socket初始化 int a = WSAStartup(0x0202, &wd); //每一个socket函数都可能失败,每次都可以获取错误码 SOCKET sc = socket(AF_INET,SOCK_DGRAM,0); if (INVALID_SOCKET == sc) { cout <<"Socket 套接字创建失败!"<<endl; cout <<"错误码:"<< WSAGetLastError() <<endl; } //struct sockaddr * sockaddr_in sa = {AF_INET, PORT}; //发布自己的端口,将套接字和机器上的一定的端口关联起来 int bi = bind(sc, (sockaddr*)&sa, sizeof(sa)); //sc:代表套接字, &sa:IP或端口地址 if (SOCKET_ERROR == bi) { cout<< "bind绑定端口失败!" << WSAGetLastError() <<endl; } int n; char s[256]; while (true) { n = recv(sc, s, sizeof(s), 0); s = '\0'; printf("接收数据为:%s\n", s); } return 0; }
测试结果:
相关文章推荐
- 配置RHEV中Linux 虚拟机使用 IPA(IDM)实现单点登录的方法
- js与jquery获取滚动条距浏览器顶部的距离
- throws 和 try catch 的区别与联系
- A1069 . The Black Hole of Numbers (20)
- 关于烂代码的那些事(上)
- ZOJ3742Bellywhite's Algorithm Homework
- centos 安装tkdiff
- node 调试debug
- 网易游戏 从笔试到offer 经验分享
- 社説 20150811 生殖補助医療 法整備に向けて議論深めよう
- 模式对话框与非模式对话框的区别
- BeanUtils.copyProperties
- 打印保持到文件
- 20-08-其他对象API(Calendar类-基本演示)
- 20-09-其他对象API(Calendar类-练习)
- json相关转换及httpPost发送
- ext2 / ext3 结构分析
- 安装DevKit
- Linux 阿里云挂载新分区
- HDU 4920 Matrix multiplication