Python实现tcp协议
1.客户端程序
import socket
def main():
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_ip = input("请输入要连接的服务器ip地址:")
server_port = int(input("请输入服务器port:"))
s.connect((server_ip,server_port))
tcp_msg = input("请输入您要发送的数据:")
s.send(tcp_msg.encode('gbk'))
receive_msg = s.recv(1024)
print('接收到的数据为:'+receive_msg.decode('gbk'))
# s.close()
if __name__ =='__main__':
main()
2.服务端程序
# 程序文件server_tcp.py
import socket # 导入socket模块
def main():
# 创建socket对象,使用IPV4协议,使用TCP传输协议
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(('127.0.0.1', 6666)) # 指定IP地址和端口号
s.listen(128)
while True: # 循环多次,为多个客户端服务
# 等待客户端的连接
print('等待客户端的连接...')
new_socket, client_addr = s.accept()
print('客户端连接成功!')
print('客户端信息:' + str(client_addr))
while True:
# 接收客户端发送的数据
recv_msg = new_socket.recv(1024)
print(recv_msg.decode('gbk'))
if recv_msg:
# 会送一部分数据给客服端
new_socket.send('Received your message'.encode('gbk'))
else:
break
new_socket.close() # 关闭新的套接字
s.close() # 关闭监听套接字
if __name__ == '__main__':
main()
3.实验
运行服务端程序结果如下:

运行客户端程序,输入服务端ip和地址,结果如下:


浙公网安备 33010602011771号