首页 > 学院 > 开发设计 > 正文

simple udp

2019-11-06 07:09:39
字体:
来源:转载
供稿:网友
/****************************************************************************@File Name: server.cpp@Author: wangzhicheng@mail: 2363702560@QQ.com@Created Time: Sun 05 Mar 2017 03:47:08 PM CST****************************************************************************/#include <unistd.h>#include <string.h>#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <iostream>using namespace std;static const int PORT_SERV = 8888;int main(int argc, char*argv[]){	int sock;	struct sockaddr_in from; 	struct sockaddr_in local;	socklen_t from_len = sizeof(from); 	int n;  	char buf[128];	sock = socket(AF_INET, SOCK_DGRAM, 0);	if(sock < 0)	{		cerr << "sock init failed...!" << endl;		return -1;	}	local.sin_family = AF_INET;  	local.sin_port = htons(PORT_SERV); 	local.sin_addr.s_addr = htonl(INADDR_ANY);	if(bind(sock, (struct sockaddr*)&local,sizeof(local)) < 0)	{		cerr << "bind failed...!" << endl;		return -2;	}	n = recvfrom(sock, buf, 128, 0, (struct sockaddr*)&from, &from_len);	if(n <= 0)	{		cerr << "recv failed...!" << endl;		return -3;	}	cout << buf << endl;	close(sock);	return 0;}/****************************************************************************@File Name: client.cpp@Author: wangzhicheng@mail: 2363702560@qq.com@Created Time: Sun 05 Mar 2017 03:59:34 PM CST****************************************************************************/#include <unistd.h>#include <string.h>#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#include <iostream>using namespace std;int main(int argc, char*argv[]){	int sock;	struct sockaddr_in addr_serv;  	struct sockaddr_in local;//	struct sockaddr_in to;	socklen_t len = sizeof(local);	int n;	char buf[128] = {0};	sock = socket(AF_INET, SOCK_DGRAM, 0);	if(sock < 0)	{		cerr << "sock init failed...!" << endl;		return -1;	}	strcpy(buf, "hello world...!/n");	addr_serv.sin_family = AF_INET; 	addr_serv.sin_addr.s_addr = inet_addr("10.204.176.40");	addr_serv.sin_port = htons(8888);//	to.sin_family = AF_INET;//	to.sin_port = htons(8888);//	to.sin_addr.s_addr = inet_addr("127.0.0.1");	if(connect(sock, (struct sockaddr*)&addr_serv, sizeof(addr_serv)) < 0)	{		cerr << "client connect server failed...!" << endl;		return -2;	}	getsockname(sock, (struct sockaddr*)&local, &len);	cout << "UDP local addr = " << inet_ntoa(local.sin_addr) << endl;	n = sendto(sock, buf, sizeof buf, 0, (struct sockaddr*)&addr_serv, sizeof(addr_serv));	if(n <= 0)	{		cerr << "client send failed...!" << endl;		return -3;	}	close(sock);	return 0;}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表