#include #include #include #include #include #include #include #include #include #include #include int main(int argc, const char * argv[]) { // insert code here... printf("Hello, World!\n"); int client_sockfd; int len; struct sockaddr_in remota_addr; //服务器端网络地址结构体 char buf[BUFSIZ]; //数据传送的缓冲区 memset(&remota_addr,0,sizeof(remota_addr)); //数据初始化--清零 remota_addr.sin_family = AF_INET; //设置为IPV4通信 remota_addr.sin_addr.s_addr = inet_addr("127.0.0.1"); remota_addr.sin_port = htons(8000); //服务器端口号 //创建客户端套接字--Ipv4协议,面向连接通信,TCP协议 //成功,返回0 ,失败返回-1 if ((client_sockfd=socket(PF_INET, SOCK_STREAM, 0))<0) { perror("socket"); return 1; } //将套接字绑定到服务器的网络地址上 if (connect(client_sockfd, (struct sockaddr *)&remota_addr, sizeof(struct sockaddr))<0) { perror("connect"); return 1; } printf("connect to server\n"); len = recv(client_sockfd, buf, BUFSIZ, 0); //接受服务器端消息 buf[len]='/0'; printf("%s",buf); //打印服务器端消息 //循环的发送信息并打印接受消息--recv返回接收到的字节数,send返回发送的字节数 while (1) { memset(buf,0,sizeof(buf)); printf("Enter string to send"); scanf("%s",buf); // if (!strcmp(buf,"quit")) { // break; // } len=send(client_sockfd,buf,strlen(buf),0); memset(buf,0,sizeof(buf)); len=recv(client_sockfd,buf,BUFSIZ,0); buf[len]='\0'; printf("received:%s\n",buf); if(buf[0]=='q'){ break; } } close(client_sockfd); return 0; }