/****************************************************************************@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;}
新闻热点
疑难解答