⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tcpclient.c

📁 Linux网络通信实例TCP&UDP 包括UDP和TCP简单的客户端和服务端两个程序 Linux下面轻松编译通过
💻 C
字号:
//================================TCPClient.c=========================================
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#include <netdb.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <sys/socket.h>

int main(int argc,char *argv[]) 
{
     if(argc!=2)
     {
           printf("%s: IPAddress\n",argv[0]);
           return ;
     }
     int sockfd,numbytes;
     char buf[100];
     struct hostent *he;
     struct sockaddr_in their_addr;int i = 0;
     //将基本名字和地址转换
     he = gethostbyname(argv[1]);
     //建立一个TCP套接口
     if((sockfd = socket(AF_INET,SOCK_STREAM,0))==-1)
     {
           perror("socket");
           exit(1);
     }
     //初始化结构体,连接到服务器的2323端口
     their_addr.sin_family = AF_INET;
     their_addr.sin_port = htons(15800);
     their_addr.sin_addr = *((struct in_addr *)he->h_addr);
     bzero(&(their_addr.sin_zero),8);
     //和服务器建立连接
     if(connect(sockfd,(struct sockaddr *)&their_addr,sizeof(struct sockaddr))==-1)
     {
           perror("connect");
           exit(1);
     }
     //向服务器发送字符串
     while(1)
     {
           scanf("%s",&buf);
           if(send(sockfd,buf,strlen(buf),0)==-1) 
           {
                 perror("send");
                 exit(1);
           }
           memset(buf,0,sizeof(buf));
           //接受从服务器返回的信息
           if((numbytes = recv(sockfd,buf,100,0))==-1)
           {
                 perror("recv");
                 exit(1);
           }
           buf[numbytes] = '\0';
           printf("result:%s\n",buf);
     }
     close(sockfd);
     return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -