首页 > 编程语言 >Python的socket编程

Python的socket编程

时间:2023-04-26 11:11:08浏览次数:40  
标签:ADDR Python 编程 PORT HOST data tcpClientSock socket

目前处在学习python爬虫的阶段,昨天看到了python的socket模块,分别实现TCP、UDP时间戳回显。

1、tcp通信server和client代码

# tcpServer.py
#!/usr/bin/python
# -*- coding: utf-8 -*-

from socket import *
from time import ctime

HOST = ''
PORT = 21156
BUFSIZE = 1024
ADDR = (HOST,PORT)

tcpServerSock = socket(AF_INET,SOCK_STREAM)
tcpServerSock.bind(ADDR)
tcpServerSock.listen(5)

while True:
    print 'waiting for connection...'
    tcpClientSock ,addr = tcpServerSock.accept()
    print '...connected from:',addr

    while True:
        data=tcpClientSock.recv(BUFSIZE)
        if not data:
            break
        tcpClientSock.send('[%s] %s' % (ctime(),data))

       tcpClientSock.close()
tcpServerSock.close

# tcpClient.py
#!/usr/bin/python
# -*- coding: utf-8 -*-

from socket import *

HOST = 'localhost'
PORT = 21156
BUFSIZE = 1024
ADDR = (HOST,PORT)

tcpClientSock = socket(AF_INET,SOCK_STREAM)
tcpClientSock.connect(ADDR)

while True:
    data = raw_input('>')
    if not data:
        break
    tcpClientSock.send(data)
    data = tcpClientSock.recv(BUFSIZE)
    if not data:
        break
    print data

tcpClientSock.close()

2、udp通信server和client代码

#udpServer.py
#!/usr/bin/python
# -*- coding: utf-8 -*-

from socket import *
from time import ctime

HOST = ''
PORT = 21156
BUFSIZE = 1024
ADDR = (HOST,PORT)

udpServerSock = socket(AF_INET,SOCK_DGRAM)
udpServerSock.bind(ADDR)

while True:
    print 'waiting for message...'
    data ,addr = udpServerSock.recvfrom(BUFSIZE)
    udpServerSock.sendto('[%s] %s' % (ctime(),data), addr)
    print '...received from and returned to:',addr

       tcpClientSock.close()
tcpServerSock.close




#udpClient.py
#!/usr/bin/python
# -*- coding: utf-8 -*-

from socket import *
# from time import ctime

HOST = 'localhost'
PORT = 21156
BUFSIZE = 1024
ADDR = (HOST,PORT)

udpClientSock = socket(AF_INET,SOCK_DGRAM)

while True:
    data = raw_input('>')
    if not data:
        break
    udpClientSock.sendto(data,ADDR)
    data,ADDR = udpClientSock.recvfrom(BUFSIZE)
    if not data:
        break
    print data

udpClientSock.close()

 

标签:ADDR,Python,编程,PORT,HOST,data,tcpClientSock,socket
From: https://www.cnblogs.com/q-q56731526/p/17355049.html

相关文章

  • python open 用法
    函数语法open(file,mode,buffering,encoding,errors,newline,closefd,opener)参数说明:name:一个包含了你要访问的文件名称的字符串值。mode:mode决定了打开文件的模式:只读,写入,追加等。所有可取值见如下的完全列表。这个参数是非强制的,默认文件访问模式为只读......
  • python 快速替换csv数据集字符串列表中的表情符号为空,asyncio,re,pandas
     传统的字符串列表替换字符串使用遍历非常慢比如下面这段代码,如果处理几十万或上百万的数据集时,会非常的慢,几小时几天都可能importrep=re.compile(u'['u'\U0001F300-\U0001F64F'u'\U0001F680-\U0001F6FF'u'\u2600-\u2B55\U00010000-\U0010ffff]+')#text="超详细修......
  • 最全的WebSocket协议分析
    0实时跟服务端通信方案1轮询:客户端向服务端无限循环发送http请求,一旦服务端有最新消息,从当次http响应中带回,客户端就能收到变化2长轮回(web版微信采用此方式)客户端和服务端保持一个长连接(http),等服务端有消息返回就断开,如果没有消息,就会hold住,等待一定时间,然后再重新连接,也......
  • python安装pillow报错
    Fatalerrorinlauncher:Unabletocreateprocessusing'"D:\ProgramFiles\Python311\python.exe" "D:\ProgramFiles\Python311\Scripts\pip.exe"installpillow':??????????? 解决:cmd窗口执行32位:python3-mpipinstall--up......
  • Python爬虫基础之三
    Python爬虫基础包括HTTP协议、HTML、CSS和JavaScript语言基础、requests库的使用、BeautifulSoup库的使用、xpath和正则表达式的使用等。此外,还应该了解反爬虫机制和爬虫的一些常见问题及解决方法。上一篇文章讲解了有关条件判断语句、循环语句、元组、字典等相关知识,本节将围绕......
  • python 画思维导图
    1.安装Graphviz要安装Graphviz,可以按照以下步骤操作:前往Graphviz官网前往Graphviz官网(https://graphviz.org/)。https://graphviz.org/download/下载适合你操作系统的安装文件在官网首页中,你可以看到Windows、macOS和Linux三个操作系统的图标。选择适合你操作系统......
  • Java8 教程_编程入门自学教程_菜鸟教程-免费教程分享
    教程简介Java8(又称为jdk1.8)是Java语言开发的一个主要版本。Java8是oracle公司于2014年3月发布,可以看成是自Java5以来最具革命性的版本。Java8为Java语言、编译器、类库、开发工具与JVM带来了大量新特性。Java8入门教程-从简单的步骤了解Java8,从基本到高级概......
  • python 装饰器
    装饰器(Decorators)是Python的一个重要部分。简单地说:他们是修改其他函数的功能的函数。他们有助于让我们的代码更简短,也更Pythonic(Python范儿)。大多数初学者不知道在哪儿使用它们,所以我将要分享下,哪些区域里装饰器可以让你的代码更简洁。......
  • python多继承
    顺序,初始化从右往左classHuman(object):...classFather(Human):def__init__(self):super().__init__()self.test1="父亲"classMother(Human):def__init__(self):super().__init__()self.test1="母亲&quo......
  • Python | raise的使用
    当程序出现错误,Python会自动引发异常,Python允许我们在程序中手动设置异常,使用raise语句即可。一旦执行了raise语句,raise后面的语句将不能执行。我们从来都是想方设法地让程序正常运行,为什么还要手动设置异常呢?首先要分清楚程序发生异常和程序执行错误,它们完全是两码事,程序由于......