博客
关于我
python3.5实现socket通讯(TCP)
阅读量:800 次
发布时间:2023-03-08

本文共 1590 字,大约阅读时间需要 5 分钟。

TCP协议是面向连接的通信方式,意味着在发送数据之前,客户端和服务器需要通过三次握手建立一个TCP连接。一旦连接建立,客户端和服务器之间的数据传输可以直接通过套接字进行,不需要再次指定目标地址和端口号。

使用TCP连接的客户-服务器程序

TCP连接的核心特点在于建立可靠的通信通道。以下是实现TCP连接的关键步骤:

  • 创建套接字:

    客户端和服务器需要创建套接字,这些套接字用于进行数据传输。套接字需要指定IP地址和端口号,以便将数据发送到正确的服务器。

  • 建立连接:

    客户端通过socket.connect()方法与服务器进行三次握手,建立TCP连接。这一过程确保了数据传输的可靠性和顺序性。

  • 数据传输:

    一旦连接建立,客户端可以通过套接字直接发送数据到服务器,无需重复指定目标地址和端口号。

  • 关闭连接:

    数据传输完成后,应及时关闭连接套接字以释放资源。客户端使用clientSocket.close(),服务器使用connectionSocket.close()。


  • TCPServer.py示例代码

    import socketimport threadingserverPort = 50007serverSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)serverSocket.bind(('', serverPort))serverSocket.listen(1)print('The server is ready to receive')while True:    connectionSocket, addr = serverSocket.accept()    modifiedSentence = connectionSocket.recv(1024)    capitalizedSentence = modifiedSentence.upper()    connectionSocket.send(capitalizedSentence)    print(f'From Server: {modifiedSentence.decode()}')    connectionSocket.close()

    TCPClient.py示例代码

    import socketserverName = '127.0.0.1'serverPort = 50007clientSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)clientSocket.connect((serverName, serverPort))sentence = input('Input lowercase sentence: ')clientSocket.send(sentence.encode())modifiedSentence = clientSocket.recv(1024)print(f'From Server: {modifiedSentence.decode()}')clientSocket.close()

    注意事项

  • 客户端连接与服务器通信:

    客户端在发送数据之前必须建立TCP连接,通过clientSocket.connect()完成三次握手。

  • 连接关闭的正确方式:

    数据传输完成后,应及时关闭连接套接字。客户端使用clientSocket.close(),服务器使用connectionSocket.close()。

  • TCP连接的特点:

    TCP协议需要两个套接字(客户端和服务器)。服务器支持多个并行连接,每个连接来自不同的客户端。

  • TCP协议通过三次握手建立可靠连接,确保数据传输的顺序性和完整性。理解这些基本原理是实现网络通信的关键。

    转载地址:http://nylfk.baihongyu.com/

    你可能感兴趣的文章
    python制作一个简单的服务器,【Python】 做一个简单的 http 服务器
    查看>>
    Python到底能做什么?它的优点在哪?
    查看>>
    python利用pytorch库导出图像分割算子
    查看>>
    python利用pyshark监听网卡来抓包其中pyshark中摸索的一些可用参数
    查看>>
    python利用excel分析过杀漏失
    查看>>
    python判断汉字数目
    查看>>
    python判断文件是空的,如果是空的,就删除
    查看>>
    python判断密码是否正确_python密码判断是否符合要求的方法
    查看>>
    python判断字符串包含中文_Python 判断字符串是否包含中文
    查看>>
    python删除第一行_Python 乱码指北:一行删掉根目录
    查看>>
    Python删除列表元素的三种方法
    查看>>
    python初步学习-python数据类型-集合(set)
    查看>>
    python列表生成字典_Python中将字典转换为列表的方法
    查看>>
    python列表对应元素合并为列表及判断一个列表是几维
    查看>>
    python+flask计算机毕业设计骨科门诊患者档案管理系统(程序+开题+论文)
    查看>>
    python+flask计算机毕业设计高校体测管理系统的设计与实现(程序+开题+论文)
    查看>>
    python+flask计算机毕业设计高校体育赛事系统(程序+开题+论文)
    查看>>
    python+flask计算机毕业设计高校危化品管理系统(程序+开题+论文)
    查看>>
    python+flask计算机毕业设计高校教学档案管理系统(程序+开题+论文)
    查看>>
    python+flask计算机毕业设计高校教学督导平台(程序+开题+论文)
    查看>>