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

小小聊天室Python代碼實(shí)現(xiàn)

 更新時(shí)間:2016年08月17日 16:40:08   作者:Marksinoberg  
這篇文章主要為大家詳細(xì)介紹了小小聊天室Python具體的實(shí)現(xiàn)代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

相對于Java方式的聊天室,Python同樣可以做得到。而且可以做的更加的優(yōu)雅。想必少了那么多的各種流的Python Socket,你一定會(huì)喜歡的。
至于知識(shí)點(diǎn)相關(guān)的內(nèi)容,這里就不多說了。

UDP方式

服務(wù)器端

# coding:utf-8

# __author__ = 'Mark sinoberg'
# __date__ = '2016/7/7'
# __Desc__ = 創(chuàng)建一個(gè)簡單的套接字監(jiān)聽請求

import socket

HOST = '192.168.59.255'
PORT = 9998

s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
s.bind(('',PORT))
print '套接字已啟動(dòng)!'
while True:
 data,addr = s.recvfrom(1024)
 print addr,str(' : ')+data

客戶端

# coding:utf-8

# __author__ = 'Mark sinoberg'
# __date__ = '2016/7/7'
# __Desc__ = socket的客戶端的簡單實(shí)現(xiàn)

import socket

PORT = 9998
HOST = '192.168.59.255'
s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
words = raw_input('Client:')
while words != 'quit':
 s.sendto(words,(HOST,PORT))
 words = raw_input('Client:')
s.close()

是不是很簡單啊。我們需要注意的就是socket的第二個(gè)參數(shù)為SOCK_DGRAM。因?yàn)檫@和TCP方式的SOCK_STREAM 有所不同。

TCP方式

服務(wù)器端

# coding:utf-8

# __author__ = 'Mark sinoberg'
# __date__ = '2016/7/7'
# __Desc__ = 簡單的tcpsocket的實(shí)現(xiàn)

from socket import *
from time import ctime

HOST = ''
PORT = 9999
BUFFERSIZE = 1024
ADDRESS = (HOST,PORT)

s = socket(AF_INET,SOCK_STREAM)
s.bind(ADDRESS)
s.listen(5)

while True:
 print 'Waiting for clients cennect!'
 tcpclient,addr = s.accept()
 print 'Connected By ',addr

 while True:
  try:
   data = tcpclient.recv(BUFFERSIZE)
  except Exception,e:
   print e.message
   tcpclient.close()
   break
  if not data:
   print "No Data received!"
   break
  senddata = 'Hi,you send me:[%s]%s'%(ctime(),data.encode('utf8'))
  tcpclient.send(senddata.encode('utf8'))
  print addr,' Says:',ctime(),data.encode('utf8')

tcpclient.close()
s.close()

 客戶端

# coding:utf-8

# __author__ = 'Mark sinoberg'
# __date__ = '2016/7/7'
# __Desc__ = 簡單的tcp socket客戶端的實(shí)現(xiàn)

from socket import *

class TcpClient:
 # HOST = 'localhost'
 PORT = 9999
 HOST = '192.168.59.225'
 BUFFSIZ = 1024
 ADDR = (HOST,PORT)
 def __init__(self):
  self.client = socket(AF_INET,SOCK_STREAM)
  self.client.connect((self.HOST,self.PORT))

  while True:
   senddata = raw_input('>>>')
   if not senddata:
    print 'Please input some words!\n>>>'
    continue
   if senddata == "quit":
    break
   self.client.send(senddata.encode('utf8'))
   recvdata = self.client.recv(self.BUFFSIZ)
   if not recvdata:
    break
   print recvdata.encode('utf8')

if __name__ == "__main__":
 client = TcpClient()

TCP方式演示結(jié)果:(注意先開啟服務(wù)器端)

服務(wù)器端

D:\Software\Python2\python.exe E:/Code/Python/MyTestSet/sockettest/SimpleTCPServer.py
Waiting for clients cennect!
Connected By  ('192.168.59.225', 63095)
('192.168.59.225', 63095)  Says: Thu Jul 07 16:01:10 2016 Hello World
('192.168.59.225', 63095)  Says: Thu Jul 07 16:01:15 2016 haode
No Data received!
Waiting for clients cennect!

客戶端

D:\Software\Python2\python.exe E:/Code/Python/MyTestSet/sockettest/SimpleTcpClient.py
>>>Hello World
Hi,you send me:[Thu Jul 07 16:01:10 2016]Hello World
>>>
Please input some words!
>>>
>>>haode
Hi,you send me:[Thu Jul 07 16:01:15 2016]haode
>>>quit

Process finished with exit code 0

總結(jié)

簡單的使用TCP或者是UDP確實(shí)很容易,然而要想更好的利用這兩個(gè)協(xié)議,就需要好好的設(shè)計(jì)一番了。

這里我想強(qiáng)調(diào)的是,注意tcp和udp創(chuàng)建套接字時(shí)指定的參數(shù)即可。

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

相關(guān)文章

  • Python hashlib模塊用法實(shí)例分析

    Python hashlib模塊用法實(shí)例分析

    這篇文章主要介紹了Python hashlib模塊用法,結(jié)合實(shí)例形式分析了Python使用hash模塊進(jìn)行md5、sha1、sha224、sha256、sha512等加密運(yùn)算相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下
    2018-06-06
  • 使用PySpark實(shí)現(xiàn)數(shù)據(jù)清洗與JSON格式轉(zhuǎn)換的實(shí)踐詳解

    使用PySpark實(shí)現(xiàn)數(shù)據(jù)清洗與JSON格式轉(zhuǎn)換的實(shí)踐詳解

    在大數(shù)據(jù)處理中,PySpark?提供了強(qiáng)大的工具來處理海量數(shù)據(jù),特別是在數(shù)據(jù)清洗和轉(zhuǎn)換方面,本文將介紹如何使用?PySpark?進(jìn)行數(shù)據(jù)清洗,并將數(shù)據(jù)格式轉(zhuǎn)換為?JSON?格式的實(shí)踐,感興趣的可以了解下
    2023-12-12
  • python 自動(dòng)重連wifi windows的方法

    python 自動(dòng)重連wifi windows的方法

    今天小編就為大家分享一篇python 自動(dòng)重連wifi windows的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • python?字典常用方法超詳細(xì)梳理總結(jié)

    python?字典常用方法超詳細(xì)梳理總結(jié)

    這篇文章主要介紹了Python數(shù)據(jù)類型字典dictionary,字典是另一種可變?nèi)萜髂P?,且可存?chǔ)任意類型對象。本篇文字將詳細(xì)講述字典的常用方法,需要的可以參考一下
    2022-03-03
  • python利用print()打印田字格練習(xí)題詳解

    python利用print()打印田字格練習(xí)題詳解

    print在 Python3.x是一個(gè)函數(shù),但在Python2.x版本不是一個(gè)函數(shù),只是一個(gè)關(guān)鍵字,這篇文章主要給大家介紹了關(guān)于python利用print()打印田字格練習(xí)題的相關(guān)資料,需要的朋友可以參考下
    2024-05-05
  • pycharm打包python項(xiàng)目為exe執(zhí)行文件的實(shí)例代碼

    pycharm打包python項(xiàng)目為exe執(zhí)行文件的實(shí)例代碼

    這篇文章主要介紹了pycharm打包python項(xiàng)目為exe執(zhí)行文件,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-07-07
  • Python安裝依賴(包)模塊方法詳解

    Python安裝依賴(包)模塊方法詳解

    Python模塊,簡單說就是一個(gè).py文件,其中可以包含我們需要的任意Python代碼。這篇文章主要介紹了Python安裝依賴(包)模塊方法,需要的朋友可以參考下
    2020-02-02
  • python中關(guān)于CIFAR10數(shù)據(jù)集的使用

    python中關(guān)于CIFAR10數(shù)據(jù)集的使用

    這篇文章主要介紹了python中關(guān)于CIFAR10數(shù)據(jù)集的使用方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • Python比較配置文件的方法實(shí)例詳解

    Python比較配置文件的方法實(shí)例詳解

    工作中最常見的配置文件有四種:普通key=value的配置文件、Json格式的配置文件、HTML格式的配置文件以及YMAML配置文件。這篇文章主要介紹了Python比較配置文件的方法 ,需要的朋友可以參考下
    2019-06-06
  • python 動(dòng)態(tài)生成變量名以及動(dòng)態(tài)獲取變量的變量名方法

    python 動(dòng)態(tài)生成變量名以及動(dòng)態(tài)獲取變量的變量名方法

    今天小編就為大家分享一篇python 動(dòng)態(tài)生成變量名以及動(dòng)態(tài)獲取變量的變量名方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01

最新評論

偏关县| 安仁县| 宝清县| 若尔盖县| 沙坪坝区| 凤翔县| 昔阳县| 渑池县| 亚东县| 玉屏| 富锦市| 陆川县| 察隅县| 山东| 扬州市| 淄博市| 鲁山县| 郴州市| 葫芦岛市| 滕州市| 北川| 皋兰县| 崇文区| 临潭县| 类乌齐县| 宣恩县| 新乡市| 根河市| 藁城市| 永丰县| 榆社县| 诸城市| 曲靖市| 长岛县| 华蓥市| 贵溪市| 安宁市| 巢湖市| 同德县| 舞钢市| 湘西|