简单:只实现一条消息的收发
1.客户端
import socket
class tcpClient():
def __init__(self,server_ip,server_port):
self.tcp_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
self.address = self.tcp_socket.bind(("",8080))
self.server_ip = server_ip
self.server_port = int(server_port)
self.tcp_socket.connect((self.server_ip,self.server_port))
def send(self,content):
self.tcp_socket.send(content.encode("gbk"))
if __name__ == '__main__':
tcp_client = tcpClient("192.168.1.239",8084)
content = input(">>>")
tcp_client.send(content)
2. 服务端
import socket
class tcpServer():
def __init__(self):
self.tcp_server_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
self.address = self.tcp_server_socket.bind(("192.168.1.239",8084))
self.tcp_server_socket.listen()
self.new_client_info, self.new_ip_port = self.tcp_server_socket.accept()
self.bufsize = 1024
def recv(self):
data = self.new_client_info.recv(self.bufsize).decode("gbk")
return data
if __name__ == '__main__':
tcp_server = tcpServer()
data = tcp_server.recv()
print(data)

进阶:进行多条消息的收发
1.客户端
import socket
class tcpClient():
def __init__(self,server_ip,server_port):
self.tcp_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
self.address = self.tcp_socket.bind(("",8080))
self.server_ip = server_ip
self.server_port = int(server_port)
self.tcp_socket.connect((self.server_ip,self.server_port))
def send(self,content):
self.tcp_socket.send(content.encode("gbk"))
def close_socket(self):
self.tcp_socket.close()
if __name__ == '__main__':
tcp_client = tcpClient("192.168.1.239", 8084)
while True:
content = input(">>>")
if content:
tcp_client.send(content)
else:
tcp_client.close_socket()
2.服务端
import socket
class tcpServer():
def __init__(self):
self.tcp_server_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
self.address = self.tcp_server_socket.bind(("192.168.1.239",8084))
self.tcp_server_socket.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,True)
self.tcp_server_socket.listen()
self.new_client_info = None
self.new_ip_port = None
self.bufsize = 1024
self.data = None
def accept(self):
self.new_client_info, self.new_ip_port = self.tcp_server_socket.accept()
return self.new_client_info,self.new_ip_port
def recv_message(self):
self.data = self.new_client_info.recv(self.bufsize).decode("gbk")
return self.data
def close_socket(self):
self.tcp_server_socket.close()
if __name__ == '__main__':
tcp_server = tcpServer()
while True:
new_client_info, new_ip_port = tcp_server.accept()
while True:
data = tcp_server.recv_message()
if data:
print(data)
else:
new_client_info.close()
print("服务器正在退出···")
break
tcp_server.close_socket()
