linux c++ socket入门之tcp client端 .

来源:互联网 发布:程序员工作特长 编辑:程序博客网 时间:2024/06/05 06:39

http://blog.csdn.net/jom_ch/article/details/7956380

main.cpp

[cpp] view plaincopy
  1. #include <iostream>  
  2. #include <tcp_client.h>  
  3.   
  4. using namespace std;  
  5.   
  6. int main(int argc,char* argv[])  
  7. {  
  8.         tcp_client tc(argv[1],argv[2]);  
  9.         return 0;  
  10. }  


tcp_client.h

[cpp] view plaincopy
  1. #include <unistd.h>  
  2. #include <iostream>  
  3. #include <sys/socket.h>  
  4. #include <arpa/inet.h>  
  5. #include <errno.h>  
  6.   
  7. class tcp_client  
  8. {  
  9. private:  
  10.         int socket_fd;  
  11.         char message[4096];  
  12.         struct sockaddr_in server_addr;  
  13.   
  14. public:  
  15.         tcp_client(char* server_ip,char* server_port);  
  16. };  


tcp_client.cpp

[cpp] view plaincopy
  1. #include "tcp_client.h"  
  2.   
  3. tcp_client::tcp_client(char* server_ip,char* server_port)  
  4. {  
  5.        if( (socket_fd = socket(AF_INET,SOCK_STREAM,0)) < 0 ) {  
  6.                 printf("create socket error: %s(errno:%d)\n)",strerror(errno),errno);  
  7.                 exit(0);  
  8.         }  
  9.   
  10.         memset(&server_addr,0,sizeof(server_addr));  
  11.         server_addr.sin_family = AF_INET;  
  12.         server_addr.sin_port = htons(atoi(server_port));  
  13.   
  14.         if( inet_pton(AF_INET,server_ip,&server_addr.sin_addr) <=0 ) {  
  15.                 printf("inet_pton error for %s\n",server_ip);  
  16.                 exit(0);  
  17.         }  
  18.   
  19.         if( connect(socket_fd,(struct sockaddr*)&server_addr,sizeof(server_addr))<0) {  
  20.                 printf("connect error: %s(errno: %d)\n",strerror(errno),errno);  
  21.                 exit(0);  
  22.         }  
  23.   
  24.         printf("send message to server: \n");  
  25.         fgets(message,4096,stdin);  
  26.   
  27.         if( send( socket_fd,message,strlen(message),0 ) < 0 ) {  
  28.                 printf("send message error\n");  
  29.                 exit(0);  
  30.         }  
  31.   
  32.         close(socket_fd);  
  33.         exit(0);  
  34.   
  35. }  


编译方式与上一篇相同:linux c++ socket入门之tcp server端

 

运行

[cpp] view plaincopy
  1. ./main 192.168.99.131 9527 

0 0
原创粉丝点击