java socket ssh_通过socket实现多个连接并实现ssh功能

一、前言上一篇中我们已经知道了客户端通过socket来连接服务端,进行了一次数据传输,那如何实现客户端多次发生数据?而服务端接受多个客户端呢?二、发送中文信息在python3中,socket只能发送bytes类型的数据,bytes类型只能表示0-225的ASCII码的值,并不能表示中文,所以当我们需要发送中文时,需要使用到编码和解码。客户端:importsocket#客户端#声明协议类型,同时生成...
摘要由CSDN通过智能技术生成

一、前言

上一篇中我们已经知道了客户端通过socket来连接服务端,进行了一次数据传输,那如何实现客户端多次发生数据?而服务端接受多个客户端呢?

二、发送中文信息

在python3中,socket只能发送bytes类型的数据,bytes类型只能表示0-225的ASCII码的值,并不能表示中文,所以当我们需要发送中文时,需要使用到编码和解码。

客户端:

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

importsocket#客户端

#声明协议类型,同时生成socket对象

client =socket.socket()#client.connect(('localhost', 8888))#python3 接收字节流数据

msg = input('>>:').strip()

client.send(msg.encode('utf-8')) #先编码成utf-8格式

data = client.recv(1024) #1024字节的数据

print(data)print(data.decode())

View Code

服务端:

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

importsocket#声明协议类型

server=socket.socket()#绑定本地网卡(多网卡选择),端口

server.bind(('localhost', 8888))#监听端口

server.listen() #监听

#conn 就是客户端连接后,在服务器端为其生成的一个连接实例#address 是客户端的 hostaddr,port

conn, address=server.accept()print("进入等待时间....")#等待#print(conn, address)

print("收到连接....")#接收数据

data_server = conn.recv(1024)print('receive:', data_server.decode()) #解码#返回一个值

conn.send(data_server)

View Code

三、Socket实现多个连接

这个事例需要在Linux环境下测试,在windows中测试时,多个客户端同时连接(也就是同时运行多个socket_client.py程序),其中一个断开,服务端会报错。Linux环境python版本为3.5

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值