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

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

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

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

UDP方式

服務器端

# coding:utf-8

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

import socket

HOST = '192.168.59.255'
PORT = 9998

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

客戶端

# coding:utf-8

# __author__ = 'Mark sinoberg'
# __date__ = '2016/7/7'
# __Desc__ = socket的客戶端的簡單實現(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的第二個參數(shù)為SOCK_DGRAM。因為這和TCP方式的SOCK_STREAM 有所不同。

TCP方式

服務器端

# coding:utf-8

# __author__ = 'Mark sinoberg'
# __date__ = '2016/7/7'
# __Desc__ = 簡單的tcpsocket的實現(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客戶端的實現(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方式演示結果:(注意先開啟服務器端)

服務器端

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

總結

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

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

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

相關文章

  • Python hashlib模塊用法實例分析

    Python hashlib模塊用法實例分析

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

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

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

    python 自動重連wifi windows的方法

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

    python?字典常用方法超詳細梳理總結

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

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

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

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

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

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

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

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

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

    Python比較配置文件的方法實例詳解

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

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

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

最新評論

汾阳市| 浑源县| 县级市| 阳春市| 东方市| 凤凰县| 宜春市| 阿坝县| 澳门| 金昌市| 长丰县| 鹤山市| 阳东县| 高密市| 镇沅| 榆林市| 左贡县| 屏山县| 如东县| 砚山县| 如皋市| 凤山县| 绥芬河市| 寻乌县| 平利县| 江津市| 孟连| 浦东新区| 合川市| 久治县| 汉沽区| 方正县| 崇仁县| 华坪县| 边坝县| 武功县| 大洼县| 瓦房店市| 高邮市| 和龙市| 外汇|