python网络编程-udp通信
udp服务端:
import socket
def main():
# 1. 创建socket
udp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 2. 绑定ip
udp_server_addr = ('127.0.0.1', 1235)
udp_server_socket.bind(udp_server_addr)
while True:
# 3. 接收数据
recv_data, recv_client_ip_port = udp_server_socket.recvfrom(1024)
# 4. 打印数据
print("接收到的数据如下:" + recv_data.decode('utf-8'))
# 5. 关闭socket
udp_server_socket.close()
if __name__ == '__main__':
main()
udp客户端
import socket
def main():
# 1. 创建socket
udp_client_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
while True:
# 2. 发送数据
data = input('请输入要发送的数据:')
udp_client_socket.sendto(data.encode('utf-8'), ('127.0.0.1', 1235))
# 3. 关闭socket
udp_client_socket.close()
if __name__ == '__main__':
main()
tcp 服务端
import socket
def main():
# 1. 建立socket
tcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 2. 绑定ip和端口
ip_address = '127.0.0.1'
ip_port = 1236
tcp_server_socket.bind((ip_address, ip_port))
# 3. 开启监听
tcp_server_socket.listen(128)
while True:
# 4. 等待客户端连接
new_client_socket, new_client_addr = tcp_server_socket.accept()
while True:
# 5. 接收客户端发送过来的请求
recv_data = new_client_socket.recv(1024)
print(recv_data.decode('utf-8'))
# 6. 回送一部分数据给客户端
new_client_socket.send("Thanks".encode('utf-8'))
# 7. 关闭套接字
new_client_socket.close()
tcp_server_socket.close()
if __name__ == '__main__':
main()
tcp 客户端
import socket
def main():
# 1. 创建socket
tcp_client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 2. 建立连接
ip_addr = '127.0.0.1'
ip_port = 1236
tcp_client_socket.connect((ip_addr, ip_port))
while True:
# 3. 发送数据
data = input("请输入要发送的消息: ")
tcp_client_socket.send(data.encode('utf-8'))
# 4. 关闭socket
tcp_client_socket.close()
if __name__ == '__main__':
main()