[size=large]該例子綜合了python的網路程式設計,執行緒,異常處理,字串處理,函式,類,做為入門級的例子,很[/size]
[size=large]實用[/size]
伺服器端server.py
#coding=utf-8
import socket
import threading
from time import sleep
class threadclass(threading.thread):
def setclient(self,client):
self.client = client
def run(self):
print('threadname-->',self.getname())
s = self.client.recv(1024).decode('utf-8')
try:
s = eval(s)
s = str(s)
except nameerror:
pass
s = 'server deal result:' + s + "\n"
self.client.send(s.encode('utf-8'))
self.client.close()
if __name__=='__main__':
s = socket.socket()
host = socket.gethostname()
port = 1234
s.bind((host,port))
#最多同時連5個客戶端
s.listen(5)
while true :
client,addr = s.accept()
threadclass = threadclass()
threadclass.setclient(client)
threadclass.start()
#sleep(20)
#if threadclass.isalive():
#print('alive')
#else:
#print("notalive")
客戶端client.py
#coding=utf-8
import socket
def sendsource(source):
return source.encode('utf-8')
def recvsource(source):
return source.decode('utf-8')
def dealsource(source):
try:
s = socket.socket()
s.connect(('10.9.9.12',1234))
s.send(sendsource(source))
#緩衝區1k
print(recvsource(s.recv(1024)))
except socket.timeout:
print("timeout")
finally:
s.close()
if __name__=='__main__':
while true:
source = input("input your source:\n")
if str.strip(source)=="quit":#退出
quit()
else:#交給伺服器處理
dealsource(source)
幾點需要注意:
1.**裡有中文的話要指定#coding=utf-8
2.命令列輸入的資料要去空格str.strip(source)
學習python寫網路爬蟲(一)
最簡單的爬蟲 import urllib2 defdownload url return urllib2.urlopen url read print download 更加健壯的版本,可以捕獲異常了 import urllib2 defdownload url print downloading ...
python寫網路爬蟲
注 本文旨在練習正規表示式的簡單使用方法 usr bin evn python coding cp936 def gethtml url 定義gethtml 函式,用來獲取頁面源 page urllib.urlopen url urlopen 根據url來獲取頁面源 html page.read 從...
用Python寫網路程式設計
網路上的兩個程式通過乙個雙向的通訊連線實現資料的交換,這個連線的一端稱為乙個socket 所謂socket通常也稱作 套接字 用於描述ip位址和埠,是乙個通訊鏈的控制代碼,應用程式通常通過 套接字 向網路發出請求或應答網路請求 socket起源於uinx,而unix linux基本哲學之一就是 一切...