关于socket编程的一些笔记
(1) udp的server和client觉得本质上没区别,能区分他们的也就是根据谁提供功能谁做server。
(2) 实现聊天程序,在python中引入线程模块即可解决client1说一句,client2才能说一句的尴尬循环。
(3) 实现Webserver的持续连接和非持续连接的差别就主要在于在循环后面是否删除socket.close()。
(4) Tcp相比于Udp多了3此握手,所以TCP不像UDP 服务器端/客户端那样在无连接状态下交换数据。UDP 中只有创建套接字过程和数据交换过程.,不像TCP而还需要调用cennect和listen函数,而且TCP客户端与服务端的socket建立是一对一的,UDP则方便很多。
编程设计
实验2.1:基于TCP / UDP的socket编程
a)分别基于TCP和UDP编写一个简单的Client/Server网络应用程序。要求实现客户向服务器传输任意一个字符串,服务器将收到的字符串变换成大写后传回客户。
b)修改上述程序,实现服务器根据客户请求,将服务器端指定的文件可靠地传输给客户。如果服务器没有指定的文件,服务器将给客户返回一个信息,通知客户其请求文件不存在。
实验2.2:基于TCP的Web Server
a)基于TCP编写一个简单的Web Server,要求可以实现单用户简单页面浏览。
b)修改上述Web Server,实现多用户同时连接(多线程)请求。
实验2.5 SOCKET编程实现聊天程序
实现聊天程序:能相互对发文本消息。
通信模型
源码
https://github.com/CO2-xz/computer-network-socket