我是靠谱客的博主 有魅力毛豆,这篇文章主要介绍python socket编程之tcp协议多客户端连接2.socket之tcp协议:3.python代码实现:4.注意点:,现在分享给大家,希望可以做个参考。

1.socket 介绍

       socket 原意插座,插孔,计算机中一般称为套接字。 在同一台计算机中的两个程序可以通过文件,管道,队列等方式进行通信;但是在网络中,两台计算机之间的通讯就需要依靠socket进行通信。

2.socket之tcp协议:

        tcp 协议英文:Transmission Control Protocol,中文:传输控制协议,是tcp/ip 协议族的一种协议,属于网络协议层中的传输层;是一种面向连接,稳定的(指不会出现丢失数据包的现象),传输速度较慢(相对于udp协议来讲)的协议。

3.python代码实现:

客户端client:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import socket # 创建TCP连接的socket对象,SOCK_STREAM表示为tcp协议类型 clientSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 连接的地址,为元组,第一个值为字符串类型的ip地址,第二个参数为端口号 address = ("", 2426) # 建立与服务端的连接 clientSocket.connect(address) while True: message = input("client send:") # 获取要发送给客户端的信息 # 将信息进行编码以后使用send方法进行发送, # 在python2中信息可以不用进行编码就可以发送 clientSocket.send(message.encode("utf-8")) if len(message) == 0: break # 当发送信息为空时,断开与服务器的连接 clientSocket.close() print("连接已断开")

服务器端server

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import socket from multiprocessing import Process def get_client_message(clientSocket, clientInfo): # 在子进程中循环接受客户端发来的信息,直到客户端发送的为空时,结束接收,并断开连接 while True: recv_data = clientSocket.recv(1024) if len(recv_data) == 0: break else: print("消息来源%s:%s" % (clientInfo, recv_data.decode("utf-8"))) print("客户端%s连接断开" % (clientInfo,)) clientSocket.close() if __name__ == '__main__': # 创建服务端socket对象 serverSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) addre = ("", 2426) # 绑定地址和端口号 serverSocket.bind(addre) # 开启监听,数字表示可同时监听的客户端数目 serverSocket.listen(5) while True: # 接受客户端的socket对象和客户端ip,端口信息, # accept()方法返回的是一个元组,直接进行解包 clientSocket, clientInfo = serverSocket.accept() # 创建子进程,并执行任务 process = Process(target=get_client_message, args=(clientSocket, clientInfo)) process.start() process.join() serverSocket.close()

4.注意点:

  1. 由于同一时刻每个端口只能被一个进程占用,所以只能和一个客户端建立连接通道,程序可以同时监听到多个客户端而已。
  2. 多个客户端同時连接时,会进入等待,等待正在连接的客户端释放端口。

最后,欢迎指正,但是都是友军,求别开腔。

最后

以上就是有魅力毛豆最近收集整理的关于python socket编程之tcp协议多客户端连接2.socket之tcp协议:3.python代码实现:4.注意点:的全部内容,更多相关python内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(81)

评论列表共有 0 条评论

立即
投稿
返回
顶部