最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python使用socket創(chuàng)建tcp服務(wù)器和客戶(hù)端

 更新時(shí)間:2018年04月12日 14:23:22   作者:欒鵬  
這篇文章主要為大家詳細(xì)介紹了python使用socket創(chuàng)建tcp服務(wù)器和客戶(hù)端,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

python使用socket創(chuàng)建tcp服務(wù)器和客戶(hù)端。

服務(wù)器端為一個(gè)時(shí)間戳服務(wù)器,在接收到客戶(hù)端發(fā)來(lái)的數(shù)據(jù)后,自動(dòng)回復(fù)。

客戶(hù)端,等待用戶(hù)輸入,回車(chē)后向服務(wù)器發(fā)送用戶(hù)輸入的內(nèi)容。

分別在python2.7和python3.6下測(cè)試。在啟動(dòng)時(shí)需要先啟動(dòng)服務(wù)器端,在啟動(dòng)客戶(hù)端。

python2.7下

服務(wù)器端代碼為

#coding:utf-8

from socket import *
from time import ctime

print("=====================時(shí)間戳TCP服務(wù)器=====================");

HOST = '' #主機(jī)號(hào)為空白表示可以使用任何可用的地址。
PORT = 21567 #端口號(hào)
BUFSIZ = 1024 #接收數(shù)據(jù)緩沖大小
ADDR = (HOST, PORT)

tcpSerSock = socket(AF_INET, SOCK_STREAM) #創(chuàng)建TCP服務(wù)器套接字
tcpSerSock.bind(ADDR) #套接字與地址綁定
tcpSerSock.listen(5) #監(jiān)聽(tīng)連接,同時(shí)連接請(qǐng)求的最大數(shù)目

while True:
  print('等待客戶(hù)端的連接...')
  tcpCliSock, addr = tcpSerSock.accept()  #接收客戶(hù)端連接請(qǐng)求
  print('取得連接:', addr)

  while True:
    data = tcpCliSock.recv(BUFSIZ) #連續(xù)接收指定字節(jié)的數(shù)據(jù),接收到的是字節(jié)數(shù)組
    if not data: #如果數(shù)據(jù)空白,則表示客戶(hù)端退出,所以退出接收
      break
    tcpCliSock.send('[%s] %s' % (ctime(), data)) #向客戶(hù)端發(fā)送時(shí)間戳數(shù)據(jù)

  tcpCliSock.close() #關(guān)閉與客戶(hù)端的連接
tcpSerSock.close() #關(guān)閉服務(wù)器socket

客戶(hù)端代碼為

#coding:utf-8

from socket import *

print("=====================TCP客戶(hù)端=====================");

HOST = '127.0.0.1' #服務(wù)器ip地址,等價(jià)于localhost
PORT = 21567 #通信端口號(hào)
BUFSIZ = 1024 #接收數(shù)據(jù)緩沖大小
ADDR = (HOST, PORT)

tcpCliSock = socket(AF_INET, SOCK_STREAM) #創(chuàng)建客戶(hù)端套接字
tcpCliSock.connect(ADDR) #發(fā)起TCP連接

while True:
  data = raw_input('> ')  #接收用戶(hù)輸入
  if not data: #如果用戶(hù)輸入為空,直接回車(chē)就會(huì)發(fā)送"",""就是代表false
    break
  tcpCliSock.send(data)  #客戶(hù)端發(fā)送消息
  data = tcpCliSock.recv(BUFSIZ)  #接收回應(yīng)消息,接收到的是字節(jié)數(shù)組
  if not data:  #如果接收服務(wù)器信息失敗,或沒(méi)有消息回應(yīng)
    break
  print(data) #打印回應(yīng)消息

tcpCliSock.close() #關(guān)閉客戶(hù)端socket

python3.6下

服務(wù)器端代碼為

#coding:utf-8

from socket import *
from time import ctime

print("=====================時(shí)間戳TCP服務(wù)器=====================");

HOST = '127.0.0.1' #主機(jī)號(hào)為空白表示可以使用任何可用的地址。
PORT = 21567 #端口號(hào)
BUFSIZ = 1024 #接收數(shù)據(jù)緩沖大小
ADDR = (HOST, PORT)

tcpSerSock = socket(AF_INET, SOCK_STREAM) #創(chuàng)建TCP服務(wù)器套接字
tcpSerSock.bind(ADDR) #套接字與地址綁定
tcpSerSock.listen(5) #監(jiān)聽(tīng)連接,同時(shí)連接請(qǐng)求的最大數(shù)目

while True:
  print('等待客戶(hù)端的連接...')
  tcpCliSock, addr = tcpSerSock.accept()  #接收客戶(hù)端連接請(qǐng)求
  print('取得連接:', addr)

  while True:
    data = tcpCliSock.recv(BUFSIZ) #連續(xù)接收指定字節(jié)的數(shù)據(jù),接收到的是字節(jié)數(shù)組
    if not data: #如果數(shù)據(jù)空白,則表示客戶(hù)端退出,所以退出接收
      break
    #tcpCliSock.send('[%s] %s' % (bytes(ctime(), 'utf-8'), data))
    tcpCliSock.send(bytes('[%s] %s' % (ctime(), data.decode('utf-8')), 'utf-8')) #向客戶(hù)端發(fā)送時(shí)間戳數(shù)據(jù),必須發(fā)送字節(jié)數(shù)組

  tcpCliSock.close() #關(guān)閉與客戶(hù)端的連接
tcpSerSock.close() #關(guān)閉服務(wù)器socket

客戶(hù)端代碼為

#coding:utf-8

from socket import *

print("=====================TCP客戶(hù)端=====================");

HOST = '127.0.0.1' #服務(wù)器ip地址,等價(jià)于localhost
PORT = 21567 #通信端口號(hào)
BUFSIZ = 1024 #接收數(shù)據(jù)緩沖大小
ADDR = (HOST, PORT)

tcpCliSock = socket(AF_INET, SOCK_STREAM) #創(chuàng)建客戶(hù)端套接字
tcpCliSock.connect(ADDR) #發(fā)起TCP連接

while True:
  data = input('> ')  #接收用戶(hù)輸入
  if not data: #如果用戶(hù)輸入為空,直接回車(chē)就會(huì)發(fā)送"",""就是代表false
    break
  tcpCliSock.send(bytes(data, 'utf-8'))  #客戶(hù)端發(fā)送消息,必須發(fā)送字節(jié)數(shù)組
  data = tcpCliSock.recv(BUFSIZ)  #接收回應(yīng)消息,接收到的是字節(jié)數(shù)組
  if not data:  #如果接收服務(wù)器信息失敗,或沒(méi)有消息回應(yīng)
    break
  print(data.decode('utf-8')) #打印回應(yīng)消息,或者str(data,"utf-8")

tcpCliSock.close() #關(guān)閉客戶(hù)端socket

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

阳山县| 广宗县| 陆川县| 安丘市| 辽宁省| 瑞金市| 中西区| 湘乡市| 平昌县| 赫章县| 错那县| 江孜县| 册亨县| 许昌市| 柘荣县| 龙山县| 博罗县| 灵宝市| 义乌市| 星子县| 奈曼旗| 乌鲁木齐县| 璧山县| 高安市| 安阳市| 集安市| 拉孜县| 仪征市| 禄丰县| 勃利县| 通州区| 平泉县| 房产| 北流市| 溧水县| 定日县| 神农架林区| 上栗县| 通海县| 焉耆| 云南省|