python socket练习

服务器端

#服务器端

import socket
server = socket.socket()
server.bind(('localhost',6969))#绑定要监听的端口
server.listen() #监听

conn,address = server.accept() #等待接收数据 返回两个值,一个是对方的标记位,一个是对方的地址

print(conn,address )
data = conn.recv(1024) #接收数据,谁发数据给我就用谁的标记位接收
print(data)
conn.send(data.upper()) #发送数据,要发给谁就用谁的标记位

server.close()
#=========执行结果==========
<socket.socket fd=312, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=('127.0.0.1', 6969), raddr=('127.0.0.1', 50169)> ('127.0.0.1', 50169)
b'hello world'

 客户端

#客户端
import socket

client = socket.socket()#声明socket类型,同时生成socket连接对象

client.connect(('localhost',6969)) 

client.send(b'hello world')  #发送数据

data = client.recv(1024)  #接收指定大小的字节
print(data)
client.close()
#==========执行结果=========
b'HELLO WORLD'

 如果要发送中文就必须要转成bytes类型,字符串通过encode()方法转出来的就是bytes类型。

重新发送一条中文,服务器端代码不变,客户端代码转下编码重新发送。

服务器端

#服务器端

import socket
server = socket.socket()
server.bind(('localhost',6969))#绑定要监听的端口
server.listen() #监听

conn,address = server.accept() #等待接收数据 返回两个值,一个是对方的标记位,一个是对方的地址

print(conn,address )
data = conn.recv(1024) #接收数据,谁发数据给我就用谁的标记位接收
print(data)
conn.send(data.upper()) #发送数据,要发给谁就用谁的标记位

server.close()
#=============执行结果=============
<socket.socket fd=312, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=('127.0.0.1', 6969), raddr=('127.0.0.1', 51032)> ('127.0.0.1', 51032)
b'\xe4\xbd\xa0\xe5\xa5\xbd,\xe4\xb8\xad\xe5\x9b\xbd'

 客户端

#客户端
import socket

client = socket.socket()#声明socket类型,同时生成socket连接对象

client.connect(('localhost',6969))

client.send('你好,中国'.encode("utf-8"))  #发送数据

data = client.recv(1024)  #接收指定大小的字节
print(data)
print(data.decode()) #
client.close()
#=======执行结果============
b'\xe4\xbd\xa0\xe5\xa5\xbd,\xe4\xb8\xad\xe5\x9b\xbd'
你好,中国

 所有的数据传送接收必须用bytes类型。

 

转载于:https://www.cnblogs.com/qing-chen/p/7444022.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值