歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Python之Socket編程學習筆記

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