摘要: 先说结论 一般分字符串形式和二进制形式两种. 由于大小端, 64/32位问题, 推荐使用字符串作为传输数据格式 字符串方式 主程序在[多线程的发送与接收]那一节 主要修改就是服务端接收到数据后,将字符串转换成数字进行相加,然后发回给客户端 二进制方式 先加个头文件sum.h, 服务端与客户端都使用同 阅读全文
posted @ 2016-09-18 22:49 cfans1993 阅读(639) 评论(0) 推荐(0) 编辑
摘要: 第二版的问题 第二版中存在一个问题, 当服务端进程意外终止, 如果客户端正阻塞在输入时, 那么无法接收到通知, 直到按下回车发送时报错才得知服务端已经关闭 client serv 几点说明: 变量i,sockfd功能相近, 遍历时用 client[FD_SETSIZE]用来保存所有需要读取的fd m 阅读全文
posted @ 2016-09-18 22:48 cfans1993 阅读(372) 评论(0) 推荐(0) 编辑
摘要: 三个基本问题 1. 服务器请求处理完毕, 处理僵尸进程 2. 慢系统调用被SIGCHLD信号中断 3. 多个SIGCHLD同时到达的情况 wait和waitpid 子进程终止时会产生SIGCHLD信号并发送给父进程 父进程可以捕获处理该信号也可以不捕获 SIGCHLD只是个数值信号, 并不包含结束子 阅读全文
posted @ 2016-09-18 22:47 cfans1993 阅读(289) 评论(0) 推荐(0) 编辑
摘要: server 最大连接数为10,监听13号端口,当有客户端连接上来时,打印客户端的相关信息,同时向客户端发送当前服务器时间 client 连接到服务端,连接完成后只接受不发送信息,收到第一条信息后打印并退出 阅读全文
posted @ 2016-09-18 22:47 cfans1993 阅读(112) 评论(0) 推荐(0) 编辑
摘要: IPv4套接字结构 套接字结构,定义IP地址与端口号,仅用于IPv4,不适用IPv6 通用套接字结构 由于IPv4,IPv6,域套接字的结构不一样,为了兼容性于是有了通用套接字结构 sockaddr通常用于函数的参数转换,结构大小随协议的不同而改变,在实际使用时,函数会要求传入一个结构大小的参数 s 阅读全文
posted @ 2016-09-18 22:46 cfans1993 阅读(275) 评论(0) 推荐(0) 编辑
摘要: unp.h unp.c 阅读全文
posted @ 2016-09-18 22:46 cfans1993 阅读(235) 评论(0) 推荐(0) 编辑
摘要: 编译 要用gdb调试, 需要在gcc编译时加 g选项 gcc g main.c o main 基本命令 gdb [a.out] 开始调试a.out程序 start 停在main函数第一行语句等待下一个命令 run 执行到下一个断点, 或阻塞语句, 或到程序结束 list/l 列出源代码 next/n 阅读全文
posted @ 2016-09-18 22:45 cfans1993 阅读(152) 评论(0) 推荐(0) 编辑