python socket tcp实战_python socket 实战

server.py

import socket,threading

def tcplink(sock, addr):

print('Accept new connection from %s:%s...' % addr)

# 发送信息给服务器

sock.send('WELCOME'.encode())

while True:

# 接受从服务器传来的信息

data = sock.recv(1024).decode()

if not data or data == 'exit':

break

# 发送信息给服务器

sock.send(('Hello, %s!' % data).encode())

sock.close()

print('Connection from %s:%s closed.' % addr)

# 创建一个 socket 对象,用于 listen 和 accept 。

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

# 绑定主机和端口

s.bind(('127.0.0.1',5001))

# listen(n) 中 n 表示的是服务器拒绝(超过限制数量的)连接之前,操作系统可以挂起的最大连接数量。n 也可以看作是"排队的数量"

s.listen(5)

print("waiting for connection...")

while True:

# 获取访问的客户端 socket 和 addr

sock, addr = s.accept()

# 开启一个线程去处理与该客户端的交互

t = threading.Thread(target = tcplink, args = (sock, addr))

t.start()

t.join()

print("server end.")

复制代码

client.py

import socket

# 创建一个 socket 对象

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

# 连接服务器

s.connect(('127.0.0.1',5001))

# 打印从服务器接收到的信息

print(s.recv(1024).decode())

for data in ['wangda','wanger','wangsan']:

# 给服务器发信息

s.send(data.encode())

print(s.recv(1024).decode())

s.send('exit'.encode())

s.close()

复制代码

开两个终端,分别用 python 命令启动两个脚本,即可看到效果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值