1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > python写tcp通信程序_一个简单的基于TCP通信的服务器端与客户端程序

python写tcp通信程序_一个简单的基于TCP通信的服务器端与客户端程序

时间:2024-01-03 12:29:02

相关推荐

python写tcp通信程序_一个简单的基于TCP通信的服务器端与客户端程序

一,概述

1,客户端:

创建客户端套接字对象

和服务端套接字建立连接

发送数据

接收数据

关闭客户端套接字

2,服务器端:

创建服务端端套接字对象

绑定端口号

设置监听

等待接受客户端的连接请求

接收数据

发送数据

关闭套接字

二,客户端

1,创建客户端套接字对象

导入import socket;

创建客户端 socket 对象 socket.socket(AddressFamily, Type),其中:

AddressFamily表示IP地址类型, 分为TPv4和IPv6,

Type 表示传输协议类型,

2,客户端套接字对象的方法

connect((host, port)) 表示和服务端套接字建立连接, host是服务器ip地址,port是应用程序的端口号,

send(data) 表示发送数据,data是二进制数据,

recv(buffersize) 表示接收数据, buffersize是每次接收数据的长度,

3,客户端程序

import socket

sk = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 创建客户套接字

sk.connect(('127.0.0.1', 8898)) # 尝试连接服务器

send_data = "你好服务端,我是客户端小黑!".encode("gbk")

sk.send(send_data)

print(send_data.decode('gbk'))

rev = sk.recv(1024) # 对话(发送/接收)

rev = rev.decode('gbk')

print(rev)

sk.close() # 关闭客户套接字

三,服务器端

1,创建客户端套接字对象

导入import socket;

创建客户端 socket 对象 socket.socket(AddressFamily, Type)

2,服务器端套接字对象的方法

bind((host, port)) 表示绑定端口号, host 是 ip 地址,port 是端口号,ip

地址一般不指定,表示本机的任何一个ip地址都可以。

listen (backlog) 表示设置监听,backlog参数表示最大等待建立连接的个数。

accept() 表示等待接受客户端的连接请求

send(data) 表示发送数据,data 是二进制数据

recv(buffersize) 表示接收数据, buffersize 是每次接收数据的长度

3. 服务器端程序

import socket

if __name__ == '__main__':

count = 0

while True:

sk = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

sk.bind(('127.0.0.1', 8898)) # 把地址绑定到套接字

print("server:正在监听......")

sk.listen(12) # 监听链接

conn, addr = sk.accept() # 接受客户端链接

ret = conn.recv(1024) # 接收客户端信息

ret = ret.decode("gbk")

print(ret) # 打印客户端信息

count += 1

send_data = "你好客户端,我是服务器端小白!这是你第{}次向我打招呼".format(count).encode("gbk")

conn.send(send_data) # 向客户端发送信息

conn.close() # 关闭客户端套接字

sk.close() # 关闭服务器套接字(可选)

四,程序运行

1,先运行服务器端程序:

2,再运行客户端程序:

本文地址:/dangfulin/article/details/107640513

希望与广大网友互动??

点此进行留言吧!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。