socket網路程式設計tcp

2021-08-04 06:23:05 字數 3367 閱讀 3078

#!/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...