服务端
因为端口号可能被占用,所以添加两个参数判断
传进来的应该是字符串,把端口号8989改成转换成整型数
ip地址也以传参的方式
回顾fork的用法1:
一个父进程希望复制自己,使父子进程同时执行不同的代码段。这在网络服务进程中是常见的——父进程等待客户端的服务请求。当这种请求到达时,父进程调用fork,使子进程处理此请求。父进程则继续等待下一个服务请求到达。
收到数据(accept)后,让他不断的接收其他客户端的介入
让子进程执行这部分
完整代码:
serve.c
client.c
以上可以实现服务端不退出
实现服务端和接收端的聊天:
先改客户端
以前msg是指向字符串的指针,把它改成数组
connect进来后,父进程不断地读(没有数据时会阻塞在这)。让子进程一直写
改服务端:
有数据到来时,创建一个子进程,子进程干两件事,两个while(1)同时跑。下面的while(1)不断读取套接字上的数据,上面的while(1)能不断地往套接字上发送
注意:出现数据重复是没清空(memset)
完整代码
serve.c
client.c
以上适用于两台机的聊天