1 socket threading程式設計之TCP

2022-05-03 08:45:11 字數 2399 閱讀 1741

1

23 1、server-tcp 45

#coding:utf867

'''8

9我是在mac下寫的**,不知道為什麼在windows上中文顯示亂碼,朋友建議我更改dos視窗編碼,我建議朋友放棄windows寫python

1011

'''12

13from socket import

socket

1415

defresponse(conn,addr):

1617   data = conn.recv(1024)

1819   node = #

這裡參考我乙個超級mini專案,本來是if...elif...else結構的,但是無奈選項太多,就用字典代替switch,大家參考一下這種處理問題的思路

2021

if node.has_key(data): #

判斷字典中是否有data這個key

2223

conn.send(node[data])

2425

print

'sent server to %s:%s

'%(addr[0],addr[1]) #

addr不是字串,而是乙個元組

2627

else:28

29     conn.send('

error')

3031

print

'error code'32

33def

server():

3435   address = ('

127.0.0.1

',8888)

3637   server =socket(af_inet,sock_stream)

3839

server.bind(address)

4041   server.listen(5)

4243

'''44

45以上是建立socket套接字,由於是基於tcp傳輸的,大家都知道,tcp是可靠傳輸,得監聽,確認連線,才傳送資料

4647

'''48

49while 1:

5051     conn,addr =server.accept()

5253     response = threading.thread(target=response,args=(conn,addr)) #

利用多執行緒,同時處理多個請求

5455

response.start()

5657

#response.join()

5859

if__name__ == '

__main__:

60server()

6162

6364 client-tcp

6566

#coding:utf8

6768

from socket import

socket

6970

defclient(data):

7172   addr = ('

127.0.0.1

',8888)

7374   client =socket(af_inet,sock_stream)

7576

try:

7778     client.connect(addr) #

連線過程可能會出現異常,丟擲異常

7980

except

exception as e:

8182

return

'connect error:%s

'%e83

84   client.send(data) #

請求服務

8586   server_response = client.recv(2048) #

伺服器傳送服務

8788

return

server_response 

8990

if__name__ == '

__main__':

9192   data = raw_input('

please input a number')

9394   node = #

這樣寫的話好點,也是基於我的超級mini小專案

9596

if node[data] == '

error':

9798

print

'input error,please input again'99

100else

:101

102print

node[data]

103104

1D1A 1 插入排序

演算法導論第乙個演算法就是插入排序,思想簡單,如果是從小到大排序,就是從第二個數開始,和前邊的數比較,直到大於等於前邊那乙個數,然後放在那個位置。而且,先用python寫,就相當於偽 特別好,既有思路,還把python練習一下,然後再用c python def insertsort a for i ...

1 小試牛刀 1

1.echo e 包含轉義序列的字串 2.彩色列印 文字 重置 0,黑 30,紅 31,綠 32,黃 33,藍 34,洋紅 35,青 36,白 37 背景 40,41,42,43,44,45,46,47 example 1 echo e e 1 31m zhangjing e 0m 紅字 2 ech...

演算法(1) 遞迴演算法1

人理解迭代,神理解遞迴。綜上所述,還是不理解地好。遞迴三要素 1 明確遞迴的終止條件 2 給出遞迴終止時的處理辦法 3 提取重複的邏輯,縮小問題的規模 遞迴的兩種解決模式 1 在遞去的過程中解決問題 function recursion 大規模input if end condition endel...