赞
踩
TCP客户端程序:
- import socket
-
-
- def main():
- # 创建tcp
- tcp_client_socket=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
-
- # 链接套接字
- # sever_ip=input("输入对方ip:")
- # sever_port=int(input("输入对方端口:"))
- # sever_addr=(sever_ip,sever_port)
- tcp_client_socket.connect(sever_addr)
- while True:
- # 数据发送
- tcp_data=input("输入发送的内容:")
- tcp_client_socket.send(tcp_data.encode("utf-8"))
-
- # 服务器返回数据
- rev_data=tcp_client_socket.recv(1024)
- print("服务器返回的消息:",rev_data)
- # 关闭套接字
- tcp_client_socket.close()
- if __name__ == '__main__':
- main()

TCP服务器程序:
当TCP客户端实现与服务器连接时,服务器给客户端创建一个新的服务套接字,类似10010客服,当你打通10010服务时,系统会随机给你分配一个客服与你交流。
- import socket
-
-
- def main():
- # 创建套接字
- tcp_sever_socket=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
-
- # 绑定本地信息
- tcp_sever_socket.bind(('',7890))
-
- # 让默认是套接字主动变为被动(listen)三次握手在这里完成
- tcp_sever_socket.listen(128)
-
- while True:
- # 等待客户端的链接
- print("等待新的客户端到来")
- new_client_socket,client_addr=tcp_sever_socket.accept() # 服务套接字
- print("客户端已经到来:%s"%str(client_addr))
-
- while True:
- # 接受客户端发过来的请求
- recv_data=new_client_socket.recv(1024)
- print("客户端发来的请求:%s"%recv_data)
- # 如果recv解阻塞,有两种方式
- # 1.客户端发来数据
- # 2.客户端close导致了recv解阻塞
- if recv_data:
- #回送一部分数据给客户端
- new_client_socket.send('hahhah'.encode("utf-8"))
- else:
- break
- # 关闭套接字
- new_client_socket.close()
- print("已经为这个客户端服务完毕")
- tcp_sever_socket.close()
- if __name__ == '__main__':
- main()

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。