UDP客户端与服务器

标签: none

python编写的UDP客户端和TCP客户端相差不大,我们需要做简单的修改,将数据包以UDP的格式发出。UDP服务器书上并没有给出,我参考了一些网上的代码。

UDP客户端:
#!/usr/bin/env python
#-- coding:utf-8 --
import socket

target_host = "0.0.0.0"
target_port = 8888

#建立一个socket对象
client = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)

#发送一些数据
client.sendto("AAABBBCCC",(target_host,target_port))

#接收一些数据
data, addr = client.recvfrom(4096)

print data

UDP服务器:
#!/usr/bin/env python
#-- coding:utf-8 --
import socket
import threading
from time import ctime

#绑定服务器所要监听的IP地址和端口
HOST = "0.0.0.0"
PORT = 8888

#这里需要将传输改为UDP
server = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)

#启动监听
server.bind((HOST,PORT))

#server.listen(5)

print "[*] listen on %s:%d" % (HOST,PORT)

#客户处理线程
def handle_client(data, client_socket):
    
    request = client_socket.recvfrom(1024)
    
    print "[*] Received: %s" % request
    
    client_socket.sendto("[ACK!]",(HOST,PORT))
    
    client_socket.close()


while True:
    client,addr = server.recvfrom(1024)
    print "[*] Accepted connection from: %s:%d" % (addr[0],addr[1])

    #挂起客户端线程,处理传入的数据
    client_handler = threading.Thread(target=handle_client,args=(client,server))
    client_handler.start()

经过测试,可以成功连接。


添加新评论