TCP回射客户程序:str_cli函数

时间:2022-04-03 03:45:55

str_cli函数完成客户处理循环:

从标准输入读入一行文本,写到服务器上,读回服务器对该行的回射,并把回射行写到标准输出上

读入一行,写到服务器

fgets读入一行文本,writen把该行发送给服务器

从服务器读入回射行,写到标准输出

readline从服务器读入回射行,fputs把它写到标准输出

返回main函数

当遇到文件结束符或错误时,fgets将返回一个空指针,于是客户处理循环终止

我们的Fgets函数检查是否发生错误,若发生则中止进程,因此Fgets只是在遇到文件结束符时才返回一个空指针

#include	"unp.h"

void
str_cli(FILE *fp, int sockfd)
{
char sendline[MAXLINE], recvline[MAXLINE]; while (Fgets(sendline, MAXLINE, fp) != NULL) { Writen(sockfd, sendline, strlen(sendline)); if (Readline(sockfd, recvline, MAXLINE) == 0)
err_quit("str_cli: server terminated prematurely"); Fputs(recvline, stdout);
}
}

  

TCP回射客户程序:str_cli函数的更多相关文章

  1. TCP回射客户程序:main函数

    创建套接字,装填网际网套接字地址结构 创建一个TCP套接字,用服务器的IP地址和端口号装填一个网际网套接字地址结构 我们可从命令行参数取得服务器的IP地址 从头文件unp.h取得服务器的众所周知端口号 ...

  2. TCP回射客户服务器模型(01 socket bind listen accept connect)

    socket函数(安装电话机)头文件:#include<sys/socket.h> int socket(int family,  int type, int protocol); //返 ...

  3. TCP回射服务器程序:main函数

    TCP回射并发服务器 1.创建套接字,绑定服务器的众所周知端口 创建一个TCP套接字,在待绑定到该TCP套接字的网际网套接字地址结构中填入通配地址(INADDR_ANY) 和服务器的众所知周(SERV ...

  4. TCP回射服务器程序:str&lowbar;echo函数

    str_echo函数执行处理每个客户的服务: 从客户读入数据,并把它们回射给客户 读入缓冲区并回射其中内容: read函数从套接字读入数据,writen函数把其中内容回射给客户 如果客户关闭连接,那么 ...

  5. TCP回射客户服务器模型&lpar;02 设置套接字选项、处理多并发&rpar;

    int setsockopt(int sockfd, int level, int optname, const void *optval, socklen_t optlen);  //设置套接字选项 ...

  6. UNIX网络编程——使用线程的TCP回射服务器程序

    同一进程内的所有线程除了共享全局变量外还共享: (1)进程指令: (2)大多数数据: (3)  打开的文件(即描述符): (4)信号处理函数和信号处置: (5)当前工作目录: (6)用户ID和组ID. ...

  7. 【Unix网络编程】chapter5TCP回射服务器程序

    chapter5  5.1 概述 5.2 TCP回射服务器程序:main函数 int main(int argc, char **argv) { int listenfd,connfd; pid_t ...

  8. TCP回射服务器修订版(ubuntu 18&period;04)

    一.需求 把https://www.cnblogs.com/soldierback/p/10673345.html中的TCP回射服务器程序重写成使用select来处理任意个客户的单进程 程序,而不是为 ...

  9. 第二十二篇:基于UDP的一对回射客户&sol;服务器程序

    前言 之前曾经学习过一对回射客户/服务器程序的例子,不过那个是基于TCP协议的.本文将讲解另一对回射客户/服务器程序,该程序基于UDP协议. 由于使用的协议不同,因此编写出的程序也有本质上的区别,应将 ...

随机推荐

  1. Xcode快捷键

    1. 文件 CMD + N: 新文件 CMD + SHIFT + N: 新项目 CMD + O: 打开 CMD + S: 保存 CMD + SHIFT + S: 另存为 CMD + W: 关闭窗口 C ...

  2. 关于litJson的System&period;InvalidCastException

    最近在做一个Unity3D的项目,用到了litJson库, 它比JavaScript里的JSON解析更加严格, 有时候解析数据的时候会出现类型不对. 比如说 {"data":12} ...

  3. 同一服务器配置DataGuard

    实验环境:1.虚拟机VMware Server 1.0.62.操作系统:ora10g@linux5 /home/oracle$ cat /etc/redhat-releaseRed Hat Enter ...

  4. json前后台传值

    谈到JSON,简单的说就是一种数据交换格式.近年来,其在服务器之间交换数据的应用越来越广,相比XML其格式更简单.编解码更容易.扩展性更好,所以深受开发人员的喜爱. 下面简单的写一下在项目中前后台js ...

  5. 删RAC中间ASM和LISTENER 资源的正确方法

    在我们的安装RAC什么时候.有时因各种错误加载错误ASM实例或LISTENER显示器,或增加CLUSTERWARE资源,但并没有真正的工作,例如: 如图所看到的,这里在2个节点分别创建过ASM1和AS ...

  6. 利用Fiddler抓取websocket包

    一.利用fiddler抓取websockt包 打开Fiddler,点开菜单栏的Rules,选择Customize Rules... 这时会打开CustomRules.js文件,在class Handl ...

  7. IntelliJ IDEA的激活和汉化

    1.下载 IntelliJ IDEA 下载地址 Community 社区版,免费使用,下载后发现没有JAVA EE,推荐下载 Ultimate Ultimate 需要注册码. 2.激活 我下载的是20 ...

  8. 【转载】2015 Objective-C 三大新特性 &vert; 干货

    Overview 自 WWDC 2015 推出和开源 Swift 2.0 后,大家对 Swift 的热情又一次高涨起来,在羡慕创业公司的朋友们大谈 Swift 新特性的同时,也有很多像我一样工作上依然 ...

  9. zabbix安装(Ubuntu)

    zabbix的安装 Zabbix监控架构至少需要server,agent,web模块.mysql.web部分和server安装在同一台机器上. Zabbix安装前服务器要做时间同步(ntp) 1.创建 ...

  10. android&colon; 动态加载碎片布局的技巧

    虽然动态添加碎片的功能很强大,可以解决很多实际开发中的问题,但是它毕竟只是在 一个布局文件中进行一些添加和替换操作.如果程序能够根据设备的分辨率或屏幕大小在运 行时来决定加载哪个布局,那我们可发挥的空 ...