Python核心编程(网络编程)[通俗易懂]

Python核心编程(网络编程)[通俗易懂]1、pythonsocket模块内置方法2、tcp服务器伪代码3、tcp客户端伪代码4、socket模块属性5、一个简单的tcp客户端和服务端

大家好,又见面了,我是你们的朋友全栈君。

1、python socket模块内置方法

Python核心编程(网络编程)[通俗易懂]

Python核心编程(网络编程)[通俗易懂]

 

 2、tcp服务器伪代码

Python核心编程(网络编程)[通俗易懂]

 

3、tcp客户端伪代码

Python核心编程(网络编程)[通俗易懂]

4、socket模块属性

Python核心编程(网络编程)[通俗易懂]

Python核心编程(网络编程)[通俗易懂]

 

5、一个简单的tcp客户端和服务端

服务端代码:

# encoding:utf-8
from socket import *
from time import ctime
from datetime import *

# 定义tcpServer监听端口号
HOST = '0.0.0.0'
PORT = 21567
ADDR = (HOST, PORT)
BUFFSIZE=1024
# 初始化一個tcp socket
tcpSvrSock = socket(AF_INET, SOCK_STREAM)
tcpSvrSock.bind(ADDR)
tcpSvrSock.listen(5)
while True:
    print('[%s] wait for connection...'%(datetime.now()))
    tcpClientSock, clientAddr = tcpSvrSock.accept()
    print('[%s] connect from: %s...'%(datetime.now(),clientAddr))
    while True:
        recieveData = tcpClientSock.recv(BUFFSIZE)
        if not recieveData:
            break
        print('[%s] 收到报文:%s' %(datetime.now(),recieveData.decode('utf-8')))
        sendData = input('> ')
        if not sendData:
            break
        tcpClientSock.send(bytes(sendData,'utf-8'))
    tcpClientSock.close()
tcpSvrSock.close()

  

  

 客户端代码:
# encoding:utf-8
from socket import *
from datetime import *

HOST = '127.0.0.1'
PORT = 21567
ADDR = (HOST, PORT)
BUFFSIZE=1024
clientSocket=socket(AF_INET,SOCK_STREAM)
clientSocket.connect(ADDR)

while True:
    sendData=input('> ')
    if not sendData:
        break
    sendData=bytes(sendData, 'utf-8')
    clientSocket.send(sendData)
    recieveData=clientSocket.recv(BUFFSIZE)
    if not recieveData:
        break
    print(recieveData.decode('utf-8'))
clientSocket.close()

  

 Python核心编程(网络编程)[通俗易懂]

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/155960.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • mysql分区表_MySQL分区表的正确使用方法

    mysql分区表_MySQL分区表的正确使用方法MySQL分区表概述我们经常遇到一张表里面保存了上亿甚至过十亿的记录,这些表里面保存了大量的历史记录。对于这些历史数据的清理是一个非常头疼事情,由于所有的数据都一个普通的表里。所以只能是启用一个或多个带where条件的delete语句去删除(一般where条件是时间)。这对数据库的造成了很大压力。即使我们把这些删除了,但底层的数据文件并没有变小。面对这类问题,最有效的方法就是在使用分区表。最常…

    2022年6月4日
    28
  • JavaSE基础(101) 遍历ArrayList集合的4种方式[通俗易懂]

    JavaSE基础(101) 遍历ArrayList集合的4种方式[通俗易懂]ArrayList遍历:取出ArrayList集合中的数据①:for循环②:增强for循环:foreach③:Iterator:迭代器④:ListIterator:双向迭代器ex:/***ArrayList遍历:取出ArrayList集合中的数据*①:for循环*②:增强for循环:foreach*③:Iterator:迭代器*④:…

    2022年7月22日
    10
  • web面试题及答案_前端html面试题

    web面试题及答案_前端html面试题阅读目录html/cssjavascriptes6vuereactjQuerywebpack、gulp、gruntnodehttpweb安全前端性能浏览器算法相关设计模式正则表达式职业规划参考资料html/css行内元素和块级元素举几个例子?行内元素:span,a,var,em,input,img,img,textarea,var,em,s……

    2022年8月29日
    2
  • 【我的Android进阶之旅】解决重写onTouch事件提示的警告:onTouch should call View#performClick when a click is detected

    【我的Android进阶之旅】解决重写onTouch事件提示的警告:onTouch should call View#performClick when a click is detected一、问题描述当你对一个控件(例如ImageView)使用setOnTouchListener()或者是对你的自定义控件重写onTouchEvent方法时会出现这个警告,警告内容全文如下:MyImageOnTouchListener#onTouchshouldcallView#performClickwhenaclickisdetectedless…(Ctrl+F…

    2022年6月17日
    29
  • pytorch loss反向传播出错

    pytorch loss反向传播出错在使用pytorch进行训练代码时,在运行loss.backward()误差反向传播时出错:RuntimeError:gradcanbeimplicitlycreatedonlyforscalaroutputsFile”train.py”,line143,intrainloss.backward()File”/usr/local/lib/python3.6/dist-packages/torch/tensor.py”,line198…

    2022年5月20日
    34
  • python批量修改文件夹和文件名_python读写文件并替换文件内容

    python批量修改文件夹和文件名_python读写文件并替换文件内容该代码可实现,例如:文件名称为’123abc.txt’,经代码执行后可将文件重命名为’123def.txt’。importosdefrename():#函数功能为:重命名文件前缀名,将文件夹中所有前缀名包含’abc’的用’def’来替换path=’./此处填写要批量替换文件所在的文件夹名称’#文件夹地址file_list=os.listdir(path)

    2022年10月30日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号