天天看點

Python3 網絡程式設計(使用Socket實作TCP、UDP通信)TCP通信UDP通信

TCP通信

TCP_服務端

1 import socket as s
 2 
 3 tcp = s.socket(s.AF_INET,s.SOCK_STREAM)
 4 tcp.bind(('127.0.0.1', 6666))
 5 tcp.listen(5)
 6 while True:
 7     # 建立用戶端連接配接
 8     clientsocket,addr = tcp.accept()      
 9     print("連接配接位址: %s" % str(addr))
10     msg = '歡迎通路{}!'.format(tcp.getsockname())+ "\r\n"
11     clientsocket.send(msg.encode('utf-8'))
12     clientsocket.close()
           

TCP_用戶端

import socket as s

tcp = s.socket(s.AF_INET,s.SOCK_STREAM)
tcp.connect(('127.0.0.1', 6666))
msg = tcp.recv(1024)
tcp.close()
print (msg.decode('utf-8'))
           

UDP通信

UDP_服務端

import socket

BUFSIZE = 1024
ip_port = ('127.0.0.1', 9999)
server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)  # udp協定
server.bind(ip_port)
while True:
    data,client_addr = server.recvfrom(BUFSIZE)
    print('client位址:', client_addr,'server收到的資料:', data.decode("UTF-8"))
    server.sendto(data,client_addr)
server.close()
           

UDP_用戶端

import socket
BUFSIZE = 1024

client = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
while True:
    msg = input(">>").strip()
    ip_port = ('127.0.0.1', 9999)
    client.sendto(msg.encode('utf-8'),ip_port)
 
    data,server_addr = client.recvfrom(BUFSIZE)
    print(server_addr,'服務端收到: ',data.decode("UTF-8"))

client.close()