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

来源:互联网 发布:在淘宝上买mp5 编辑:程序博客网 时间:2024/06/04 19:41

main.cpp

#include <iostream>#include <tcp_client.h>using namespace std;int main(int argc,char* argv[]){        tcp_client tc(argv[1],argv[2]);        return 0;}


tcp_client.h

#include <unistd.h>#include <iostream>#include <sys/socket.h>#include <arpa/inet.h>#include <errno.h>class tcp_client{private:        int socket_fd;        char message[4096];        struct sockaddr_in server_addr;public:        tcp_client(char* server_ip,char* server_port);};


tcp_client.cpp

#include "tcp_client.h"tcp_client::tcp_client(char* server_ip,char* server_port){       if( (socket_fd = socket(AF_INET,SOCK_STREAM,0)) < 0 ) {                printf("create socket error: %s(errno:%d)\n)",strerror(errno),errno);                exit(0);        }        memset(&server_addr,0,sizeof(server_addr));        server_addr.sin_family = AF_INET;        server_addr.sin_port = htons(atoi(server_port));        if( inet_pton(AF_INET,server_ip,&server_addr.sin_addr) <=0 ) {                printf("inet_pton error for %s\n",server_ip);                exit(0);        }        if( connect(socket_fd,(struct sockaddr*)&server_addr,sizeof(server_addr))<0) {                printf("connect error: %s(errno: %d)\n",strerror(errno),errno);                exit(0);        }        printf("send message to server: \n");        fgets(message,4096,stdin);        if( send( socket_fd,message,strlen(message),0 ) < 0 ) {                printf("send message error\n");                exit(0);        }        close(socket_fd);        exit(0);}


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

 

运行

./main 192.168.99.131 9527

 

原创粉丝点击