欢迎大家来到IT世界,在知识的湖畔探索吧!
1 需求描述:
(1)Linux下编写。
(2)创建一个服务器、若干个客户端。
(3)用户可以通过客户端输入文字向服务器发送消息。
(4)服务器端接收到客户端发送的数据,将用户输入的内容在服务器上打印出来,并原样返回。
2 相关基础
2.1 套接字Socket通信编程
2.1.1 TCP/IP通信过程:
图2.1.1 TCP/IP通信过程
2.1.2 UDP通信过程:
图2.1.2 UDP通信过程
2.2 fork多进程编程
fork,在英语中意思是分叉的意思。Linux函数fork(void)被定义在#include
中,调用成功时,返回两个值,子进程返回0,父进程返回子进程的ID,出错返回-1。子进程是父进程的副本,它将获得父进程的数据空间、堆、栈等资源的副本并且拥有自己独立的地址空间。
以下是一个fork的简单例子。
fork实例
3 设计
3.1 框架设计
图3.1 框架设计
本文使用TCP进行通信。
3.2 代码设计
套接口的通信一般使用read( )和write( )。这里使用send( )和recv( ),因为这一对函数可以更好地控制数据传输。
图3.2 代码设计
4 详细代码
4.1 服务器端代码
服务器端代码
4.2 客户端代码
客户端代码
5 运行结果
Linux下进行编译:
gcc Server.c -o server
gcc Client.c -o client
运行结果
客户端1:
图5.1 客户端1运行结果
客户端2:
图5.2 客户端2运行结果
服务器端:
图5.3 服务器端运行结果
从上图中可以看到,服务器可以对两个客户端的消息进行相应。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/82878.html