服务器
import socket
#创建套接字
tcp_server = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
tcp_server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, True)
#获取本机的ip地址和端口号
ip = "127.0.0.3"
port = 6666
#绑定ip地址和制定的端口号
tcp_server.bind((ip,port))
#开启监听模式,把服务器变成被动接受状态
tcp_server.listen(128)
# tcp_server.listen(128)
print("等待连接>>>>>>")
#开始接受客户端的请求,并把系统分配的用于通信的新的套接字信息和端口信息进行解包
new_socket,new_addr = tcp_server.accept()
if new_socket:
print('connected from:', new_addr)
while True:
if new_socket:
data = new_socket.recv(1024).decode("gbk")
# if data=='0':
# new_socket.close()
# print("等待连接>>>>>>")
# new_socket,new_addr = tcp_server.accept()
print(data,'jk')
new_socket.send(data.encode("gbk"))
if data=='0':
new_socket.close()
print("等待连接>>>>>>")
new_socket,new_addr = tcp_server.accept()
tcp_server.close()
客户端
import socket
tcp_client = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
ip = "127.0.0.5"
port = 12351
address = tcp_client.bind((ip,port))
tcp_client.connect(("127.0.0.3", 6666))
# 请求连接服务器
# 发送的内容,要经过gbk格式的编码
while True:
data = input('>>> ')
content = data.encode("gbk")
# 将内容发送出去
tcp_client.send(content)
data2 = tcp_client.recv(1024).decode("gbk")
print(data2)
# if data=='0': #直接break,就会出现套接字地址端口不释放,因为要关掉连接的话,
# break #要再次发送请求得到服务器的拒绝才会真正断掉连接
if data=='0':
data2 = tcp_client.recv(1024).decode("gbk")
break
#print(data2)
tcp_client.close()