UDP的使用示例
来源:互联网 发布:淘宝客服周总结 编辑:程序博客网 时间:2024/06/05 17:21
1.Server.cpp
#include <sys/types.h>
#include <netinet/in.h>
#include <sys/socket.h>
#include <unistd.h>
#include <arpa/inet.h>
#include <assert.h>
#include <string.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
int main(int argc, char* argv[])
{
// if(argc <= 2)
// {
// cout<<"please enter more args"<<endl;
// return 0;
// }
// int port = atoi(argv[1]);
// char* ip = argv[2];
int port = 5566;
int sock = socket(AF_INET, SOCK_DGRAM, 0);
assert(sock >= 0);
struct sockaddr_in addr;
bzero(&addr, sizeof(addr));
addr.sin_family = AF_INET;
addr.sin_port = htons(port);
addr.sin_addr.s_addr = htonl( INADDR_ANY );
//inet_pton(AF_INET, ip, &addr.sin_addr); //if do you can use telnet
int ret = bind(sock, (struct sockaddr*)&addr, sizeof(addr));
assert(ret == 0);
struct sockaddr_in acceptaddr;
unsigned int len = sizeof(acceptaddr);
char recvbuf[128] = {'\0'};
while(true)
{
ret = recvfrom(sock, recvbuf, 128, 0, (struct sockaddr*)&acceptaddr, &len);
cout<<"buf is: "<<recvbuf<<endl;
assert(ret > 0);
ret = sendto(sock, recvbuf, 128, 0, (struct sockaddr*)&acceptaddr, len);
assert(ret > 0);
}
close(sock);
return 1;
}
2.client.cpp
#include <sys/types.h>
#include <netinet/in.h>
#include <sys/socket.h>
#include <unistd.h>
#include <arpa/inet.h>
#include <assert.h>
#include <string.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
int main(int argc, char* argv[])
{
if(argc <= 2)
{
cout<<"please enter more args"<<endl;
return 0;
}
char* ip = argv[1];
int port = atoi(argv[2]);
int sock = socket(AF_INET, SOCK_DGRAM, 0);
assert(sock >= 0);
struct sockaddr_in addr;
bzero(&addr, sizeof(addr));
addr.sin_family = AF_INET;
addr.sin_port = htons(port);
inet_pton(AF_INET, ip, &addr.sin_addr);
const char *buf = "This is a test from jack";
int ret = sendto(sock, buf, strlen(buf), 0, (struct sockaddr*)&addr, sizeof(addr));
assert(ret > 0);
struct sockaddr_in acceptaddr;
unsigned int len = sizeof(acceptaddr);
char recvbuf[128] = { '\0' };
ret = recvfrom(sock, recvbuf, 128, 0, (struct sockaddr*)&acceptaddr, &len);
assert(ret > 0);
cout<<"recv "<<ret<<" bytes, buf is: "<<recvbuf<<endl;
close(sock);
return 1;
}
- UDP的使用示例
- 简单的UDP穿透示例
- UDP的API编程示例
- 使用AF_INET实现UDP点对点通信示例
- java之UDP使用示例代码
- udp示例
- UDP协议的WinSock API编程示例
- 基于udp的监视系统示例
- C#的UDP广播通信程序示例
- 一个VC简单的UDP广播示例
- linux 下的UDP client/server 示例
- Boost的UDP接收server示例
- [Python]UDP编程的简单示例
- TCP/UDP的Socket编程示例
- 第二章 简单的UDP通讯示例
- 使用UDP的情况
- socket UDP的使用
- Qt UDP的使用
- 新工作
- MD5加密工具
- em算法笔记
- 快速幂(转自百度百科 自用)
- 从文件中读取内容
- UDP的使用示例
- Android APP 开发第一篇
- java连接FTP、删除、下载文件的方法
- B-树、B+树
- ubuntu14.04开机自动挂载windows磁盘的配置方法
- 写入内容到文件中
- 导入到Myeclipse中项目注释乱码问题
- iOS学习之UIActionSheet的使用
- hdu 1075 二分搜索