通信实现网络聊天程序"/>
Linux利用 Socket 通信实现网络聊天程序
写在前面:大家好,我是草莓橙须圆。毕业之前在CSDN和微信公众号活跃
欢迎关注我的公众号:【草莓橙须圆】
微信公众号主要就是更新大学生或者考研党的日常
CSDN主要就是学习Java过程中总结的笔记,以及编程分享
这篇文章主要是给大家分享Linux利用 Socket 通信实现网络聊天程序
Socket是什么呢?
socket起源于Unix,而Unix/Linux基本哲学之一就是“一切皆文件”,都可以用“打开open –> 读写write/read –> 关闭close”模式来操作。我的理解就是Socket就是该模式的一个实现,socket即是一种特殊的文件,一些socket函数就是对其进行的操作(读/写IO、打开、关闭)。
Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。
先从服务器端说起。服务器端先初始化Socket,然后与端口绑定(bind),对端口进行监听(listen),调用accept阻塞,等待客户端连接。在这时如果有个客户端初始化一个Socket,然后连接服务器(connect),如果连接成功,这时客户端与服务器端的连接就建立了。客户端发送数据请求,服务器端接收请求并处理请求,然后把回应数据发送给客户端,客户端读取数据,最后关闭连接,一次交互结束。
1.【问题描述】
在 Linux 环境下,利用 Socket 通信实现网络聊天程序,主要包括以下功能:
⑴ 写一个 shell 脚本,实现聊天界面的显示、用户的注册、登录(登录后可显示 用户昵称)、聊天方式的选择等功能。
⑵ 聊天方式分为:公聊和私聊。
⑶ 实现客户端之间网络传输文件。
⑷ 保存聊天记录,以备必要时查询。
⑸ 其它额外功能。
聊天界面:
⑴ 聊天界面的显示、在线用户、在线人数、系统时间等。
⑵ 聊天方式的选择。
⑶ 用户的注册功能。
客户端:
⑴ 用户需要登录,登录时只需要输入一个昵称即可无需判断昵称是否重复(如果其他功能都 ok 考虑)。
⑵ 用户登录后连接服务器端,进入聊天室 。
⑶ 用户可以输入聊天信息,也可以收到别人的聊天信息。
⑷ 用户可以用某个特殊单词代表退出聊天室。
服务器端:
⑴ 启动服务器,开放端口 。
⑵ 等待客户端的连接,每连接上一个客户端,启动一个线程。
⑶ 在线程中与客户端交互,交互过程
更多推荐
Linux利用 Socket 通信实现网络聊天程序
发布评论