Skip to content

计算机网络编程的实验,主要练习UNIX下socket的使用。没有考虑实际网络环境中可能出现的异常,程序安全性有待提高。

Notifications You must be signed in to change notification settings

Satoing/socket_experiment

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

计算机网络编程实验

主要是练习UNIX下socket的使用。

echo

本实验传输层协议为TCP(对应实验1、2)。

  1. 客户端:客户端连接上服务端后,在命令行进行输入,回车后从服务端收到相同的消息。
  2. 服务端:要求实现并发,即可以连接多个客户端。

并发可以选择多线程与多进程,这里选择多进程。

time

本实验的传输层协议是UDP(对应实验3、4)。

  1. 客户端:从服务端获得当前的时间。
  2. 服务端:使用循环(循环无连接的服务器)

聊天程序的实现(todo)

要求传输层协议为TCP(对应实验5)。 目标:

  1. 实现图片等二进制文件的传输
  2. ✔实现CS模式,即服务器对两个客户端的消息进行中转。(p2p➡CS)
  3. 制作成桌面程序,因为需要在Ubuntu下运行,所以选择跨平台的pyqt。(这个有时间做)

说明

chat:聊天的两个客户端之间是有顺序的,即只能第一个客户端发了消息后第二个客户端回复,一直重复这个过程...因为read()时程序会阻塞在那里。这种方式比较死板,和平时的聊天场景不太符合。

chat2:使用多线程,实现了两个客户端不限顺序地传递消息,类似于QQ上的聊天。具体的做法是服务端为两个聊天的客户端开启两个线程:一个线程用于接收客户端1的消息并转发给客户端2;另一个线程用于将客户端2的消息转发给客户端1。客户端也需要使用两个线程,一个线程用于接收消息,另一个线程用于发送消息。

About

计算机网络编程的实验,主要练习UNIX下socket的使用。没有考虑实际网络环境中可能出现的异常,程序安全性有待提高。

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages