在使用socket实现TCP与UDP不同就在于
tcp_socket = socket(AF_INET, SOCK_STREAM)
udp_socket = socket(AF_INET, SOCK_DGRAM)
其次TCP协议的话客户端需要连接服务器,服务端需要设置接听状态
from socket import *
def main():
# 1.创建套接字socket
tcp_socket = socket(AF_INET, SOCK_STREAM)
# 2.绑定信息bind
tcp_socket.bind(("", 5773))
# 3.设置为监听状态listen
tcp_socket.listen(128)
# 循环多次accept,为多个客户端服务
while True:
print("Wait Client...")
# 等待客户端连接accept
new_client, client_addr = tcp_socket.accept()
# 打印接入客户端地址信息
print("Access Client:%s : %d" % (client_addr[0], client_addr[1]))
# 为同一个客户端多次服务
while True:
# 接收客户端发送来的请求
new_data = new_client.recv(1024)
# recv解堵塞两种方式:1.客户端发来数据 2.客户端调用close
if new_data:
# 打印客户端发送到来的信息
print("message:%s" % new_data.decode("gbk"))
# 反馈客户端信息接收到
new_client.send(b"-----succeed----")
else:
break
# 关闭该客户端套接字,不再为此客户端服务
new_client.close()
print("Done...")
# 关闭套接字
tcp_socket.close()
if __name__ == '__main__':
main()