前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python的socket编程

Python的socket编程

原创
作者头像
用户7999227
修改2021-11-02 14:36:45
2570
修改2021-11-02 14:36:45
举报
文章被收录于专栏:Java小王子Java小王子

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

1、tcp通信server和client代码

代码语言:javascript
复制
# 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
代码语言:javascript
复制
# 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代码

代码语言:javascript
复制
#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
代码语言:javascript
复制
#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() 

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档