python中socket实现TCP通信的介绍(附示例)


本文摘自php中文网,作者不言,侵删。

本篇文章给大家带来的内容是关于python中socket实现TCP通信的介绍(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

TCP

TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能,用户数据报协议(UDP)是同一层内 [1] 另一个重要的传输协议。在因特网协议族(Internet protocol suite)中,TCP层是位于IP层之上,应用层之下的中间层。不同主机的应用层之间经常需要可靠的、像管道一样的连接,但是IP层不提供这样的流机制,而是提供不可靠的包交换。

下面是socket实现TCP通信的示意图,我们根据示意图来编写程序

2098209074-5bbab4726e837_articlex.jpg

TCP服务端

服务器进程首先要绑定一个端口并监听来自其他客户端的连接。 如果某个客户端连接过来了, 服务器就与该客户端建立Socket连接, 随后的通信就靠这个Socket连接了。

我们来编写一个简单的服务器程序, 它接收客户端连接,回复客户端发来的请求。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

import socket

server = socket.socket()

server.bind(('192.168.1.165',8900))

#调用 listen() 方法开始监听端口, 传入的参数指定等待连接的最大数量

server.listen(4)

serObj,address = server.accept()

#当有客户端访问时,实现两边的交流,如果有一方退出,整个程序退出。

#服务器程序通过一个永久循环来接受来自客户端的连接

#这里虽然给出最大连接数为4,但单线程程序也只会响应一个连接

while True:

#建立连接后,服务端等待客户端发送的数据,实现通信

    re_data = serObj.recv(1024).decode('utf-8')

    print('client>>',re_data)

    if re_data == 'quit':

        break

    send_data = input('server>>')

    serObj.send(send_data.encode('utf-8'))

    if send_data == 'quit':

        break

serObj.close()

server.close()

TCP客户端

阅读剩余部分

相关阅读 >>

mac自带Python在哪

3分钟写出你的第一个Python程序

Python关键字yield的介绍

Python中range()函数怎么用

Python是解释型语言么

Python序列之列表

总结Python中执行命令的几种方法

Python数据分析

Python里upper什么意思

Python中有栈吗

更多相关阅读请进入《Python》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...