主要為題出在伺服器端的accept()函式,他返回兩個引數,乙個套接字和乙個客戶端的ip和埠組成的元組。
問題就出在這個套接字這裡,我們繼承了socket這個類,這個套接字建立的時候是通過socket建立的,
後面我們不可以直接使用它,因為它呼叫的方法都是socket的方法,所以我們只能將他作為引數,傳來傳去。
**見下:
import socketclass my_socket(socket.socket):
def __init__(self, encoding='utf-8'):
self.encoding = encoding
super(my_socket, self).__init__()
def mysend(self, data):
return super(my_socket, self).send(data.encode(self.encoding))
def my_send(self, data, conn):
return conn.send(data.encode(self.encoding))
def myrecv(self, num):
msg = super(my_socket, self).recv(num).decode(self.encoding)
return msg
def my_recv(self, buffersize, conn):
msg = conn.recv(buffersize).decode(self.encoding)
return msg
importserver端my_tcp
sk =my_tcp.my_socket()
sk.bind((
'127.0.0.1
', 7084))
sk.listen(4)
while 1:
conn, addr =sk.accept()
(conn, type(conn))
while 1:
res_s = sk.my_recv(1024, conn)
(res_s)
if res_s == 'q'
:
break
res_f = input('
>>>>>')
sk.my_send(res_f, conn)
if res_f == 'q'
:
break
conn.close()
sk.close()
importclient端my_tcp
sk =my_tcp.my_socket()
adress = ('
127.0.0.1
', 7084)
sk.connect(adress)
while 1:
meg = input('
>>>')
sk.mysend(meg)
if meg == 'q'
:
break
res_s = sk.myrecv(1024)
if res_s == 'q'
:
break
(res_s)
sk.close()
寫乙個繼承方法
原型 鏈式繼承 父類 function people name people.prototype.eat function food 子類 functionme me.prototype newpeople frank 建立繼承關係 frank test code var frank newme c...
python寫語音識別時遇到的乙個小bug
初學python者,在用python寫語音識別時發現python中input 和raw input的區別,下面是原始碼 from aip import aipspeech from pydub import audiosegment import time 你的id api key 你的apikey...
用C 寫乙個不能被繼承的類
用c 設計乙個不能被繼承的類 方法1 把構造 析構函式設為私有,但這樣就不能例項化了。於是定義公有的靜態函式來建立和釋放類的例項。class sealedclass0 sealedclass0 public static sealedclass0 getinstance static void de...