注意一定要先啟動server,再啟動client,否則client因為無法找到server而丟擲異常
# coding=utf-8
from socket import *
serverport = 12000
# af_inet表示底層網路使用的是ipv4, sock_stream表示使用的socket型別是tcp
serversocket = socket(af_inet, sock_stream)
# 繫結伺服器的埠號
serversocket.bind(('', serverport))
# 設定請求連線的最大數(>0)
serversocket.listen(1)
print
'the server is ready to recieve'
while
1: # 阻塞程式,等待tcp client的connect,以完成三次握手
connectionsocket, addr = serversocket.accept()
# 從ciletn出接受位元組流,最大為1024b
sentence = connectionsocket.recv(1024)
capitalizedsentence = sentence.upper()
# 向client傳送位元組流
connectionsocket.send(capitalizedsentence)
# 關閉連線
connectionsocket.close()
# coding=utf-8
from socket import *
servername = '127.0.0.1'
serverport = 12000
# af_inet表示底層網路使用的是ipv4, sock_stream表示使用的socket型別是tcp
clientsocket = socket(af_inet, sock_stream)
# 三次握手,嘗試建立tcp連線,如果失敗會丟擲異常
clientsocket.connect((servername, serverport))
sentence = raw_input('input lowercase sentence:')
# 傳送出位元組流給伺服器
clientsocket.send(sentence)
# 從伺服器接受資訊,會阻塞程式,1024表示快取的最大大小是1024b
modifiedsentence = clientsocket.recv(1024)
print
'from server:', modifiedsentence
# 關閉套接字,傳送最後一條tcp保文
clientsocket.close()
Socket 程式設計(TCP)
詳細請參見 點我o o哈!很不錯的一篇文章哈 下面是接收資料和傳送資料的函式 int receive socket fd,char sztext,int len if rc 0 return len cnt sztext rc cnt rc return len int send socket fd...
Socket 程式設計(TCP)
下面是接收資料和傳送資料的函式 cpp view plain copy intreceive socket fd,char sztext,intlen if rc 0 return len cnt sztext rc cnt rc return len int send socket fd,char...
socket程式設計 TCP
socket本身有 插座 的意思,在linux環境下,用於表示程序間網路通訊的特殊檔案型別。本質為核心借助緩衝區形成的偽檔案。既然是檔案,那麼理所當然的,我們可以使用檔案描述符引用套接字。與管道類似的,linux系統將其封裝成檔案的目的是為了統一介面,使得讀寫套接字和讀寫檔案的操作一致。區別是管道主...