博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
套接口编程理论基础:TCP回射客户程序
阅读量:6689 次
发布时间:2019-06-25

本文共 1278 字,大约阅读时间需要 4 分钟。

main 函数:

#include    "unp.h" int main(int argc, char **argv) {
int sockfd; struct sockaddr_in servaddr; if (argc != 2) err_quit("usage: tcpcli
"); /*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); } }

转载地址:http://sakoo.baihongyu.com/

你可能感兴趣的文章
VirtualBox无法进入Win8PE的桌面
查看>>
弹出菜单效果
查看>>
uva 10972 RevolC FaeLoN
查看>>
asp.net mvc生命周期学习
查看>>
静态类(static)与java值传递、引用传递小测
查看>>
Android深入浅出系列之Bluetooth—蓝牙操作(一)
查看>>
前端基础(JavaScript)
查看>>
解决ftp登录问题:500 OOPS: cannot change directory:/home/xxx 500 OOPS: child died
查看>>
MongoDB在Windows下安装配置
查看>>
Eclipse 项目有红感叹号、小红叉
查看>>
如何使用Dev C++调试(debug)c程序
查看>>
Windows Phone开发(1):概论
查看>>
如何修改博客样式
查看>>
C#语法之泛型
查看>>
ArcGIS API for Silverlight中加载Google地形图(瓦片图)
查看>>
如何生成excel文件作为图像识别结果
查看>>
Liferay-Activiti 功能介绍 (新版Liferay7基本特性)
查看>>
Dom4j解析xml
查看>>
ubuntu 安装过程记录
查看>>
my blog zen :分享所学,backup一切~
查看>>