UNIX TCP回射服务器/客户端(1):用于测试的客户端
来源:互联网 发布:网络研修甘肃社区 编辑:程序博客网 时间:2024/05/16 11:25
《Unix网络编程》这本书附带了许多短小精美的小程序,我在阅读此书的时候,将书上的代码按照自己的理解重写了一遍(大部分是抄书上的),加深一下自己的理解(纯看书太困了,呵呵)。此例子在Ubuntu10.04上测试通过。
PS:程序里使用了包裹函数(首字母是大写的函数)和常量(所有字母都是大写的常量)的声明在my_unp.h文件中,定义在unp_base.c和unp_thread.c中,地址:http://blog.csdn.net/aaa20090987/article/details/8096701
程序简介:这个一个专门用于测试TCP服务器的客户端。它的原理很简单,利用TCP协议,先和指定的服务器建立连接,然后从终端读取一段字符串,并发送给服务器,最后读取服务器的返回,并显示在终端上。
上代码:
#include "my_unp.h" void str_cli(FILE *fp, int sockfd) { char sendline[MAXLINE], recvline[MAXLINE]; int len;//从终端获取一行字符串,将其写入套接字 //然后从套接字一行字符串,将其写入终端 while( Fgets(sendline, MAXLINE, fp) != NULL ) { Writen(sockfd, sendline, strlen(sendline)); len = Read(sockfd, recvline, MAXLINE);if( len == 0 ) error_quit("str_cli: server terminated prematurely"); recvline[len] = 0;Fputs(recvline, stdout); } } int main(int argc, char **argv) { int sockfd; struct sockaddr_in servaddr; if( argc != 2 ) error_quit("usage: client <IPAddress>"); //创建用于TCP协议的套接字 sockfd = Socket(AF_INET, SOCK_STREAM, 0); memset(&servaddr, 0, sizeof(servaddr)); servaddr.sin_family = AF_INET; servaddr.sin_port = htons(SERV_PORT); //将程序的参数1(argv[1])转换成套接字地址结构 Inet_pton(AF_INET, argv[1], &servaddr.sin_addr); ////向服务器发起连接,连接成功后client_socket代表了客户机和服务器的一个socket连接 Connect(sockfd, (SA*)&servaddr, sizeof(servaddr)); str_cli(stdin, sockfd); return 0; }
运行示例(红色字体的为输入)(假设某个回射字符串的服务器已经启动)
qch@ubuntu:~/code$ gcc my_unp_v1.c client.c -o client
qch@ubuntu:~/code$ ./client 127.0.0.1
ABCD
ABCD
Ctrl+D
- UNIX TCP回射服务器/客户端(1):用于测试的客户端
- UNIX TCP回射服务器/客户端(5):多线程服务器
- UNIX TCP回射服务器/客户端(3):使用select模型的服务器
- UNIX TCP回射服务器/客户端(4):使用epoll模型的服务器
- UNIX TCP回射服务器/客户端之使用epoll模型的服务器
- UNIX TCP回射服务器/客户端(2):多进程服务器
- UNIX TCP回射服务器/客户端(6):进程池服务器
- UNIX TCP回射服务器/客户端(6):线程池服务器
- UNIX UDP回射服务器/客户端
- UNIX网络编程——TCP回射服务器/客户端程序
- 基于TCP 的服务器、、客户端(socket)
- 服务器开发之简单的TCP回射服务器(二):客户端程序
- 深入研究socket编程(1)-----socket之TCP回射服务器/客户端程序
- TCP服务器/客户端
- TCP服务器/客户端程序
- TCP 服务器客户端程序设计
- 5.10TCP客户端服务器
- TCP 服务器与客户端
- 继承
- ASP.NET程序的26个优化技巧
- Qt学习总结
- Prismatic:用机器学习分析用户兴趣只需10秒钟
- Hibernate 性能优化
- UNIX TCP回射服务器/客户端(1):用于测试的客户端
- shell编程学习笔记三
- JAVA初识
- linux远程登录
- ubuntu12.04安装fcitx问题解决
- Wince6.0系统启动后直接运行应用程序的实现与问题
- android的实现电话号码的实现
- html5实现随机圆形的加速运动
- JSON