5.1 基于TCP的服务器端和客户端2
来源:互联网 发布:网络规划设计师备考 编辑:程序博客网 时间:2024/06/02 04:19
4.1的Client代码中, 在传输的数据较大时就会出现问题。
服务器端不需要修改,client进行改进:
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>#include <arpa/inet.h>#include <sys/socket.h>#define BUF_SIZE1024void error_handling(char *message);int main(int argc,char *argv[]){int sock;struct sockaddr_in serv_addr;char message[BUF_SIZE];int str_len,recv_len,recv_cnt;if(argc != 3){printf("Usage : %s <IP> <port>\n",argv[0]);exit(1);}sock = socket(PF_INET,SOCK_STREAM,0);if(sock == -1){error_handling("socket() error");}memset(&serv_addr,0,sizeof(serv_addr));serv_addr.sin_family = AF_INET;serv_addr.sin_addr.s_addr = inet_addr(argv[1]);serv_addr.sin_port = htons(atoi(argv[2]));if(connect(sock,(struct sockaddr *)&serv_addr,sizeof(serv_addr)) == -1){error_handling("connect() error\r\n");}else{printf("Connected....");}while(1){printf("Input message(Q to quit):");fgets(message,BUF_SIZE,stdin);if(!strcmp(message,"q\n") || !strcmp(message,"Q\n"))break;str_len = write(sock,message,strlen(message));recv_len = 0;while(recv_len < str_len){recv_cnt = read(sock,&message[recv_len],BUF_SIZE-1);if(recv_cnt == -1)error_handling("read() error!");recv_len += recv_cnt;}message[str_len] = 0;printf("Message from server : %s \n",message);}close(sock);return 0;}void error_handling(char *message){fputs(message,stderr);fputs("\n",stderr);exit(1);}
执行结果:
alex@alex-VirtualBox:~/Share/Test/tcpip$ ./echo_client2 127.0.0.1 9190Connected....Input message(Q to quit):hheafafMessage from server : hheafafInput message(Q to quit):affffffffffffffffffffffffffffffffffffffffffffff..Message from server : affffffffffffffffffffffffffffffffffffffffffffff..
0 0
- 5.1 基于TCP的服务器端和客户端2
- 基于tcp的服务器端和客户端简单版
- 基于TCP的迭代回声服务器端和客户端
- 基于TCP/IP的套接字服务器端和客户端编程
- 关于Python基于TCP的服务器端和客户端编程
- 第五章 基于TCP的服务器端/客户端(2)
- 基于TCP的客户端、服务器端socket编程
- TCP 客户端和服务器端
- 网络编程Tcp的客户端和服务器端
- TCP传输客户端和服务器端的建立
- 基于Windows的迭代回声服务器端/客户端(基于TCP的服务器端/客户端)
- 【Java Socket】入门系列 3.2.编程实现基于 TCP 的 Socket 通信 — 服务器端和客户端
- 基于TCP的客户端,服务器端上传文本文件的功能Demo
- 基于TCP的客户端与服务器端之间的通信
- 基于UDP的服务器端和客户端
- 21、基于UDP的服务器端和客户端
- 基于TCP服务器端,客户端的上传任意文件Demo
- 基于TCP协议的客户端与服务器端程序
- Intent页面传值的问题新人求罩
- spring 事务问题
- 利用POI通过Excel来录入数据,导入office07版的问题
- 求大神帮忙php页面跳转问题
- 关于在Android中使用JavaCV的问题
- 5.1 基于TCP的服务器端和客户端2
- CSS3 border-radius边框圆角
- android 关于时间问题
- IOS GCD使用求助
- struts2.1.8.1升级到struts2.3.15.1出现action 404错误
- VMware中ubuntu虚拟机与windows的端口映射,共享一个IP地址
- Linux 查找并替换所有的标点符号
- 关于cookie_path的问题
- 安卓获取ApiStore天气数据失败