的系统调用函数pthread_create、pthread_joi
42实验过程说明(使用TCPIP)
1监听连接
利用socket、bi
d、liste
建立连接,步骤是:
1先用socket函数初始化socket,创建新的sockfd。
Sockfdsocket(AF_INT,SOCK_STREAM0)
2此步骤涉及到IP地址及其处理过程。
参数说明:
i
et_addr函数INADDR_ANY
该函数把由小数点分开的十进制IP地址转为u
si
gedlo
g类型,而在实验中所
使用的为INADDR_ANY,使用利用自已的IP地址自动填充。
a利用bi
d函数绑定端口和IP地址。
My_addrsi
_familyAF_INET
将地址族类型设定好
My_addrsi
_porthto
sMYPORT
将端口给其赋值
My_addrsi
_addrs_addrINADDR_ANY用连接地址自动填充ip
Bi
dsockfdstuctsockaddrmy_addrsizeofstuctsockaddr
sockfd是分配的socket名字,myaddr则便是分配好的端口与IP,用bi
d
绑定
b利用liste
监听请求
2发送请求
1利用gethostby
ame获取主机信息。
2初始化socket端口。
3利用co
ect函数将自己的IP地址等信息发送到主机,等待主机调用accept
f函数来接受请求。3主机接收请求,进行数据通信
1主机利用accept接收请求。2创建子进程,显示欢迎信息;3接收返回信息,显示连接成功,并推出连接;4关闭客户端口socket;5关闭服务端socket,结束子线程。
f5系统设计
程序测试环境:li
ux操作系统。
测试软件:SecureCRT
1在编写完TCP服务端程序serverc后,用gccservercoserverwalllpthread生成程序server。
2在编写完TCP客户端程序clie
tc后,用gccclie
tcoclie
twall生成程序clie
t
3在主机上打开一窗口,运行server。4再打开若干个窗口或者在另一个主机上打开,运行clie
t
f6详细设计与实现
61主要功能实现如下611登陆模块
客户端
发送标志位2,账号,密码到服务器
服务器接收到帐号密码,与之前设定好的进行匹配
成功
匹配是否成功
登录成功
失败
f612注册模块
客户端
发送标志位2,账号,密码到服务器
服务器接收到帐号密码,与之前设定好的进行匹配
不存在
匹配是否存在在功
注册成功
存在
f613私聊模块
客户端发送标志位4(私聊对象名字)私聊内容
服务器遍历在线链表,找到私聊对象,把私聊内容发给私聊对象
私聊对象接收私聊内容
613群聊模块
客户端发送标志位4(all)群聊内容
服务器遍历在线链表,找到所有在线对象,把私聊内容发给所有在线对象
所有在线对象接收群聊内容
f613显示在线用户
服务器接受客户端登陆请求
服务器遍历在线链表,找到所有在线对象,把所有在线对象名字发给当前登陆对象
当前登陆对r