套接口编程理论基础:TCP回射客户程序
2012-03-19 09:54
190 查看
main 函数:
str_cli 函数:
本函数完成客户处理循环:从标准输入读入一行文本,写到服务器上;读入服务器对该行文本的回射,并把回射行写到标准输出上。
#include "unp.h" int main(int argc, char **argv) { int sockfd; struct sockaddr_in servaddr; if (argc != 2) err_quit("usage: tcpcli <IPaddress>"); /*Socket函数原型int socket (int family, int type, int protocol);protocol为0时 ,以选择给定family和type组合的系统缺省值。参照 4.2节,*/ sockfd = Socket(AF_INET, SOCK_STREAM, 0); bzero(&servaddr, sizeof(servaddr)); servaddr.sin_family = AF_INET; /*考虑主机字节序和网络字节间的相互转换。参照3.4节*/ servaddr.sin_port = htons(SERV_PORT); /*地址转换函数inet_pton(int, const char *, void *):将点分十进制IPv4地址转化成32位二进制IPv4地址。3.7节*/ Inet_pton(AF_INET, argv[1], &servaddr.sin_addr); /*建立与服务器的连接*/ Connect(sockfd, (SA *) &servaddr, sizeof(servaddr)); str_cli(stdin, sockfd); /* do it all */ exit(0); }
str_cli 函数:
本函数完成客户处理循环:从标准输入读入一行文本,写到服务器上;读入服务器对该行文本的回射,并把回射行写到标准输出上。
#include "unp.h" void str_cli(FILE *fp, int sockfd) { char sendline[MAXLINE], recvline[MAXLINE]; /*fgets 读入一行文本*/ while (Fgets(sendline, MAXLINE, fp) != NULL) { /*把该行文本发送给服务器*/ Writen(sockfd, sendline, strlen(sendline)); /*readline从服务器读入回射行*/ if (Readline(sockfd, recvline, MAXLINE) == 0) err_quit("str_cli: server terminated prematurely"); /*fputs 把回射行写到标准输出上*/ Fputs(recvline, stdout); } }
相关文章推荐
- 套接口编程理论基础:简单的TCP服务器程序
- Java基础---Java---网络编程---TCP的传输、客户端和服务端的互访、建立一个文本转换器、编写一个聊天程序
- Java基础---Java---网络编程---TCP的传输、客户端和服务端的互访、建立一个文本转换器、编写一个聊天程序
- linux c学习笔记----TCP基础客户/服务编程(socket,bind等)
- 套接口编程理论基础:正常启动
- 套接口编程理论基础:处理SIGCHLD信号
- 【HTTP】TCP连接与套接字编程(socket)理论基础
- 套接口编程理论基础:服务器进程终止
- TCP多进程并发编程-回射服务/客户程序
- linux c学习笔记----TCP基础客户/服务编程(socket,bind等)
- linux c学习笔记----TCP基础客户/服务编程(socket,bind等)
- linux c学习笔记----TCP基础客户/服务编程(socket,bind等)
- linux c学习笔记----TCP基础客户/服务编程(socket,bind等)
- unix网络基础-TCP时间获取客户程序
- Java基础知识强化之网络编程笔记25:Android网络通信之 Future接口介绍(Java程序执行超时)
- 三、Linux网络编程-TCP/IP基础(三)IP数据报格式、网际校验和、路由
- Socket网络通信理论基础搜集(TCP/IP协议栈与数据包封装+TCP与UDP的区别)
- 《UNIX网络编程》TCP网络编程基础(1)
- Pair project 2: 电梯调度算法程序(基于接口的设计和编程)
- linux基础编程 套接字socket 完整的服务器端多线程socket程序【转】