Python中socket是通过调用socket模块,调用里面的相关函数实现tcp、udp通讯。
socket编程思路:
TCP服务端:
创建套接字,绑定套接字到本地IP与端口
socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.bind()
开始监听连接
s.listen()
进入循环,不断接受客户端的连接请求
s.accept()
然后接收传来的数据,并发送给对方数据
s.recv()
s.sendall()
传输完毕后,关闭套接字
s.close()
TCP客户端:
创建套接字,连接远端地址
socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect()
连接后发送数据和接收数据
s.sendall()
s.recv()
传输完毕后,关闭套接字
s.close()
=============================================
UDP通讯实现:
# 创建套接字
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 设置接收方ip端口(ip, port)
dest_addr = ()
# 绑定本地端口(ip,端口)ip不填写默认检测所有本地ip
localip_addr =()
udp_socket.bind()
# 获取输入数据
send_data = input()
# 发送数据
udp_socket.sendto(send_data.encode("utf-8"), dest_addr)
# 接受数据
recv_data = udp_socket.recvfrom(1024)
# 打印接受的数据,window用gbk,linux默认utf-8
print(recv_data[0].decode("gbk"))
for tmp in recv_data[1]:
print(tmp)
# 关闭套接字
udp_socket.close()
原文地址:http://blog.51cto.com/10412806/2092742