大佬教程收集整理的这篇文章主要介绍了C/C++网络编程1——linux实现,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
网络编程就是编写程序使两台联网的计算机相互交换数据。
例子:服务器端开启一个socket,监听9999端口。客户端向服务器端发起请求,服务器端收到请求以后,给客户端发送一句:"hello world";
服务器端:
1 #include <unistd.h> 2 #include <iostream> 3 #include <string> 4 #include <cstdlib> 5 #include <arpa/inet.h> 6 #include <sys/socket.h> 7 8 using namespace std; 9 10 int main() 11 { 12 int serv_sock = socket(PF_INET,SOCK_STREAM,0); 13 if (serv_sock == -1) { 14 cout << "socket() error" << endl; 15 return 0; 16 } 17 18 sockaddr_in serv_addr; 19 serv_addr.sin_family = AF_INET; 20 serv_addr.sin_addr.s_addr = inet_addr("127.0.0.1"); 21 serv_addr.sin_port = htons(9999); 22 23 if (bind(serv_sock,(sockaddr*) &serv_addr,sizeof(serv_addr)) == -1) { 24 cout << "bind() error" << endl; 25 close(serv_sock); 26 return 0; 27 } 28 29 if (listen(serv_sock,5) == -1) { 30 cout << "listen() error" << endl; 31 close(serv_sock); 32 return 0; 33 } 34 35 sockaddr_in clnt_addr; 36 socklen_t clnt_add_size = sizeof(clnt_addr); 37 cout << "start listen" << endl; 38 int clnt_sock = accept(serv_sock,(sockaddr*) &clnt_addr,&clnt_add_size); 39 if (clnt_sock == -1) { 40 cout << "accept() error" << endl; 41 close(clnt_sock); 42 close(serv_sock); 43 return 0; 44 } 45 46 string message = "hello world"; 47 write(clnt_sock,message.c_str(),message.size()); 48 49 close(clnt_sock); 50 close(serv_sock); 51 52 return 0; 53 }
客户端:
1 #include <unistd.h> 2 #include <iostream> 3 #include <string> 4 #include <cstdlib> 5 #include <arpa/inet.h> 6 #include <sys/socket.h> 7 8 using namespace std; 9 10 int main() 11 { 12 int clnt_sock = socket(PF_INET,0); 13 if (clnt_sock == -1) { 14 cout << "socket() error" << endl; 15 return 0; 16 } 17 18 sockaddr_in serv_addr; 19 serv_addr.sin_family = AF_INET; 20 serv_addr.sin_addr.s_addr = inet_addr("127.0.0.1"); 21 serv_addr.sin_port = htons(9999); 22 23 if (connect(clnt_sock,sizeof(serv_addr)) == -1) { 24 cout << "connect() error" << endl; 25 close(clnt_sock); 26 return 0; 27 } 28 29 char message[100]; 30 int str_len = read(clnt_sock,message,sizeof(message)-1); 31 if (str_len == -1) { 32 cout << "read Failed" << endl; 33 close(clnt_sock); 34 return 0; 35 } 36 37 cout << message << endl; 38 close(clnt_sock); 39 return 0; 40 }
以上是大佬教程为你收集整理的C/C++网络编程1——linux实现全部内容,希望文章能够帮你解决C/C++网络编程1——linux实现所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。