此应用是一个基于Linux操作系统的终端应用,具有群聊,私聊,好友管理,聊天记录,文件传送等功能。
基于C/S架构
服务器端:采用多线程的方式来实现服务器对多个客户端的连接请求的响应。在服务器端创建socket套接字对其进行绑定后,使套接字处于监听状态,等待来自客户端的连接请求,服务器端会创建一个线程在线程中处理该连接请求,而服务器端线程继续等待来自其它客户端的连接请求。
客户端:客户端在创建套接字后调用connect()函数连接到服务器端,然后使用从connect()返回的套接字与服务端进行通信。
个人项目。大一下半学期加入实验室,暑假留校学习了相关基础知识后实现的一个小项目。该项目是基于Linux操作系统的终端环境的应用,目前实现了好友管理,私聊,群聊,文件传输等大部分功能,可以满足用户主要聊天需求。
采用C/S通信模型,使用Linux下的Socket编程实现网络通信。
服务器端:负责监听客户端发过来的消息 客户端:登录连接到服务器端实现通信功能
基于C/S架构,采用多线程的方式实现服务器对多个客户端的连接请求的响应。在服务器端创建socket套接字对其进行绑定之后,使套接字处于监听状态。等待来自客户端的连接请求。服务器端会创建一个线程来处理该连接请求,服务器端线程会继续等待来自其他客户端的连接请求。客户端会在创建套接字之后调用connect函数连接到服务器端,然后使用从connect函数返回的套接字与读武器端进行通信。
服务器端:初始化服务器程序,持续监听一个固定端口,收到客户端发过来的连接请求后建立一个socket连接,与客户端进行通信,接收客户端发来的数据。
bind():实现套接字与本地地址相连
listen():通知服务器准备好监听客户端的连接
accept():接收连接,等待客户端的连接,建立连接之后accept函数返回新的标识客户端套接字,运用多线程和recv()/send()接收/发送数据。
客户端:用来向服务器端发送数据,初始化客户程序,连接到服务器上,建立socket连接,通过socket连接向服务器端发送请求信息。
socket():建立套接字,返回套接字号
connect():将套接字与远程主机连接
recv()/send():将套接字上的读写数据进行发送和接收
close():关闭套接字,关闭对话