服务端
服务器进程首先要绑定一个端口并监听来自其他客户端的连接。如果某个客户端连接过来了,服务器就与该客户端建立Socket连接,随后的通信就靠这个Socket连接了。所以,服务器会打开固定端口(比如80)监听,每来一个客户端连接,就创建该Socket连接。由于服务器会有大量来自客户端的连接,所以,服务器要能够区分一个Socket连接是和哪个客户端绑定的。一个Socket依赖4项:服务器地址、服务器端口、客户端地址、客户端端口来唯一确定一个Socket。
import socket
import sys
import _thread
def newkehu(clientsocket,addr):
print("连接地址: %s" % str(addr))
msg='欢迎新客户'+ "\r\n"
clientsocket.send(msg.encode('gbk'))
while True:
print(clientsocket.recv(1024).decode('gbk'))
serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定
serversocket.bind(('192.168.99.109', 9999))
# 设置最大连接数,超过后排队
serversocket.listen(5)
while True:
# 建立客户端连接
clientsocket,addr = serversocket.accept()
# 新开线程
_thread.start_new_thread(newkehu,(clientsocket,addr))
#clientsoc