標籤:
server side:
# coding: gb2312
#socket server端
#擷取socket構造及常量
from socket import *
#‘‘代表格服務器為localhost
myHost = ‘‘
#在一個非保留連接埠號碼上進行監聽
myPort = 50007
#設定一個TCP socket對象
sockobj = socket(AF_INET, SOCK_STREAM)
#綁定它至連接埠號碼
sockobj.bind((myHost, myPort))
#監聽,允許5個連結
sockobj.listen(5)
#直到進程結束時才結束迴圈
while True:
#等待下一個用戶端連結
connection, address = sockobj.accept( )
#連結是一個新的socket
print ‘Server connected by‘, address
while True:
#讀取用戶端通訊端的下一行
data = connection.recv(1024)
print "對方回複:", data
#如果沒有資料的話,那麼跳出迴圈
message = raw_input("QQ聊天:")
connection.send(message)
#當socket關閉時eof
connection.close( )
client side:
# coding: gb2312
import sys
from socket import *
serverHost = ‘192.168.159.3‘
serverPort = 50007
#發送至服務端的預設文本
message = [‘Hello‘]
#如果參數大於1的話,連結的服務端為第一個參數
if len(sys.argv) > 1:
serverHost = sys.argv[1]
#如果參數大於2的話,連結的文字為第二個參數
if len(sys.argv) > 2:
message = sys.argv[2:]
#建立一個tcp/ip通訊端對象
sockobj = socket(AF_INET, SOCK_STREAM)
#連結至伺服器及連接埠
sockobj.connect((serverHost, serverPort))
while True:
message = raw_input("QQ聊天:")
sockobj.send(message)
#從服務端接收到的資料,上限為1k
data = sockobj.recv(1024)
#確認他是引用的,是‘x‘
print ‘對方回複:‘, repr(data)
#關閉通訊端
sockobj.close( )
Python之字元介面QQ