【TCP/IP协议】socket套接字

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/onlyongwang/article/details/82217914

1. Socket

之前讲过TCP/IP各层的定义,基于套接字的编程处在传输层和应用层的中间。Socket能够兼容多种网络协议,最常见的是TCP/UDP。

下面是使用scoket编程,客户端与服务器端TCP连接的整个过程:

1-2.1.4-1

注意看每个状态下的括号里的就是程序中具体用到的函数,而具体程序中,客户端和服务器端是这样调用这些函数的:

客户端创建套接字(socket),与服务器端进行连接(connect),成功后与内核TCP协议栈进行读写交互(read,write)。

服务器端创建套接字(socket),成功后绑定特定IP地址和端口(bind),然后将其设置为监听客户请求的状态(listen)。如果有来自客户端的请求,就接收(accept),成功后与内核TCP协议进行读写交互(read,write)。

https://www.cnblogs.com/zengzy/p/5107516.html

 

子进程的功能:

等待用户输入聊天信息
将聊天信息写到管道(pipe),并发送给父进程
父进程的功能:

使用epoll机制接受服务端发来的信息,并显示给用户,使用户看到其他用户的聊天信息
将子进程发给的聊天信息从管道(pipe)中读取, 并发送给服务端
服务端类需要支持:

支持多个客户端接入,实现聊天室基本功能
启动服务建立监听端口等待客户端连接
使用epoll机制实现并发,增加效率
客户端连接时发送欢迎消息并存储连接记录
客户端发送消息时广播给其他所有客户端
客户端请求退出时对连接信息进行清理

 

展开阅读全文

没有更多推荐了,返回首页