歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Python之Socket編程學習筆記

Python之Socket編程學習筆記

日期:2017/3/1 10:02:10   编辑:Linux編程

1.面向連接方式和無連接方式

面向連接方式,在通信發生之前先建立起一個連接,類似打電話,使用虛擬線路類型的套接字,實現這種連接方式的基本協議是傳輸控制協議(Transmission Control Protocol, TCP)。這種通信方式又叫做“虛擬線路”或”流式套接字“。

代碼如下:

tcpSocket=socket(AF_INET,SOCK_STREAM)

無連接方式,在通信開始前不用建立連接,類似郵遞,使用數據圖類型的套接字,實現這種連接方式的基本協議是用戶數據圖協議(User Datagram Protocol, UDP)。

代碼如下:

udpSocket=socket(AF_INET,SOCK_DGRAM)

2.TCP服務器端代碼

from socket import *

print '***** Now starting server *****'
Host=''
Port=12306
Buffsize=1024
Addr=(Host,Port)

ServerSocket=socket(AF_INET,SOCK_STREAM) #初始化一個TCP套接字
print '* Initing connection...'
ServerSocket.bind(Addr) #綁定到地址綁定到套接字上
ServerSocket.listen(5) #設置和啟動TCP監聽程序,參數指定最多允許多少個客戶連接到服務器
print '* Connection inited...'

while True:
print '* Now waiting for connection...\n'
ClientSocket,addr=ServerSocket.accept() #接受客戶連接(阻斷)
print '* Connected from',addr
ClientSocket.send('Server: Connect successfully')
while True:
data=ClientSocket.recv(Buffsize) #接受TCP消息
print '* Client: ',data
if data == 'quit':
print '\n* Client ',addr,' disconnected'
break
ClientSocket.send('Server: Message[ %s ] send successfully' % data)
#返回信息給客戶端
ClientSocket.close()
ServerSocket.close()

Copyright © Linux教程網 All Rights Reserved