#!/usr/bin/env python
#-*-coding:utf-8-*-
#tcp 客戶端
import socket
host='127.0.0.1'
post=3214
s=socket.socket()
try:
s.connect((host,post))
data='你好!'
while data:
s.sendall(data.encode('utf-8'))
data=s.recv(1024)
print('receive from server:\n',data.decode('utf-8'))
data=input('please input an infor:\n')
except socket.error as err:
print(err)
finally:
s.close()
#!/usr/bin/env python
#-*-coding:utf-8-*-
#tcp 伺服器端鏈結
import socket
host=''
post=3214
s=socket.socket()
s.bind((host,post))
s.listen(5)
clnt,addr=s.accept()
#客戶端物件
print("client address:",addr)
while true:
data=clnt.recv(1024)
#從客戶端接受資料
if not data:
break
print("recieve data:",data.decode('utf-8'))
#接受為二進位制
clnt.send(data)
clnt.close()
s.close()
#!/usr/bin/env python
#-*-coding:utf-8-*-
#用socketserver 框架搭建tcp伺服器端
import socketserver
import threading
#關閉伺服器,在不同的執行緒
def sd():
if serv:
serv.shutdown()
#處理類
class myhdl(socketserver.streamrequesthandler):
def handle(self):
while true:
data=self.request.recv(1024)
print('收到資料:',data.decode('utf-8'))
if data==b'bye':
break
self.request.sendall(data)
print('本次服務結束。')
threading.thread(target=sd).start()
if __name__=='__main__':
host=''
port=3214
#例項化伺服器端
serv=socketserver.tcpserver((host,port),myhdl)
#啟動服務
serv.serve_forever()
#!/usr/bin/env python
#-*-coding:utf-8-*-
#socketserver客戶端
import socket
host='127.0.0.1'
port=3214
s=socket.socket()
s.connect((host,port))
data="你好!"
while data:
s.sendall(data.encode('utf-8'))
if data=='bye':
break
data=s.recv(1024)
print("收到資料: ",data.decode('utf-8'))
data=input('輸入要傳送的資訊:')
s.close()
#!/usr/bin/env python
#-*-coding:utf-8-*-
#socketserver rf客戶端
import socket
host='127.0.0.1'
port=3214
s=socket.socket()
s.connect((host,port))
data="你好!"
while data:
data+='\n'
s.sendall(data.encode('utf-8'))
data=s.recv(1024)
print("收到資料: ",data.decode('utf-8').strip('\n'))
data=input('輸入要傳送的資訊:')
s.close()
#!/usr/bin/env python
#-*-coding:utf-8-*-
#用socketserver 框架搭建tcp伺服器端
#用rfile,wfile讀取資料
import socketserver
import threading
#關閉伺服器,在不同的執行緒
def sd():
if serv:
serv.shutdown()
#處理類
class myhdl(socketserver.streamrequesthandler):
def handle(self):
while true:
#讀取一行
data=self.rfile.readline()
if not data:
break
#不包含最後的換行符
print('收到資料:',data.decode('utf-8').strip('\n'))
self.wfile.write(data)
print('本次服務結束。')
threading.thread(target=sd).start()
if __name__=='__main__':
host=''
port=3214
#例項化伺服器端
serv=socketserver.tcpserver((host,port),myhdl)
#啟動服務
serv.serve_forever()
Socket網路程式設計之TCP
如果要用一句話總結tcp是什麼,我想應該是 tcp是網際網路運輸層的面向連線的 可靠的 基於位元組流的 全雙工的運輸協議 tcp運輸層協議服務 在分析tcp服務之前需要說明tcp在網路協議分層中處於哪個層次,下圖是tcp ip協議族的四個層次 tcp和udp都使用相同的網路層 ip 但是tcp向應用...
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...