本文實例講述了Python網絡編程之TCP與UDP協議套接字用法。分享給大家供大家參考,具體如下:
TCP協議
服務器端:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
#!/usr/bin/env python from socket import * from time import ctime HOST = '' PORT = 21567 BUFSIZ = 1024 ADDR = (HOST, PORT) tcpSerSock = socket(AF_INET, SOCK_STREAM) ##創建服務器TCP套接字 tcpSerSock.bind(ADDR) tcpSerSock.listen( 5 ) while True : print 'waiting for connection...' tcpCliSock, addr = tcpSerSock.accept() ##等待客戶端連接 print '...connected from:' , addr while True : data = tcpCliSock.recv(BUFSIZ) ##監聽客戶端是否發送消息 if not data: break tcpCliSock.send( '[%s] %s' % ( ctime(), data)) tcpCliSock.close() tcpSerSock.close() |
客戶端:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
#!/usr/bin/env python from socket import * HOST = 'localhost' PORT = 21567 BUFSIZ = 1024 ADDR = (HOST, PORT) tcpCliSock = socket(AF_INET, SOCK_STREAM) ##創建客戶端TCP套接字 tcpCliSock.connect(ADDR) ##連接服務器 while True : data = raw_input ( '> ' ) if not data: break tcpCliSock.send(data) data = tcpCliSock.recv(BUFSIZ) ##監聽客戶端發送消息 if not data: break print data tcpCliSock.close() |
UDP協議
服務器端:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
#!/usr/bin/env python from socket import * from time import ctime HOST = '' PORT = 21567 BUFSIZ = 1024 ADDR = (HOST, PORT) udpSerSock = socket(AF_INET, SOCK_DGRAM) udpSerSock.bind(ADDR) while True : print 'waiting for message...' data, addr = udpSerSock.recvfrom(BUFSIZ) ##監聽并接受客戶端發的消息 udpSerSock.sendto( '[%s] %s' % ( ##給消息加上時間戳并返回給客戶端 ctime(), data), addr) print '...received from and returned to:' , addr udpSerSock.close() |
客戶端:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
#!/usr/bin/env python from socket import * HOST = 'localhost' PORT = 21567 BUFSIZ = 1024 ADDR = (HOST, PORT) udpCliSock = socket(AF_INET, SOCK_DGRAM) while True : data = raw_input ( '> ' ) if not data: break udpCliSock.sendto(data, ADDR) ##給服務器發送數據 data, ADDR = udpCliSock.recvfrom(BUFSIZ) ##客戶端接受帶時間戳的數據 if not data: break print data udpCliSock.close() |
希望本文所述對大家Python程序設計有所幫助。
原文鏈接:http://www.cnblogs.com/paulwinflo/p/5015325.html