Python 网络编程之socket

网络编程:信息传输一般会有两步,一是发送,一是接收。

socket 基础应用,先创建一个客户端,然后创建一个服务器端。客户端负责发送消息和接收服务器发过来的消息,服务器端负责接收客户端发送过来的消息和发送消息到客户端。

客户端

# 客户端
import socket

client = socket.socket() # 声明 socket 类型,同时生成 socket 连接对象
# <socket.socket fd=496, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0>
print(client)
client.connect(("localhost", 7894))
# <socket.socket fd=496, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0,
#  laddr=('127.0.0.1', 59049), raddr=('127.0.0.1', 7894)>
print(client)

client.send(b"Hello World!----from client")
data = client.recv(1024) # 设置接收的长度,1024字节 1K
print("recv:", data)

client.close()

服务器端

# 服务器端
import socket

server = socket.socket()
# <socket.socket fd=508, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0>
print(server)
server.bind(("localhost", 7894))    # 绑定要监听端口
server.listen() # 监听端口
# socket.socket fd=516, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0,
# laddr=('127.0.0.1', 7894)> 监听的端口
print(server)

print("等待接听中-----")
# conn 是客服端连过来而在服务器端为其生成的一个连接实例
conn, addr = server.accept()        # 等待传入信息
# conn =<socket.socket fd=568, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0,
# laddr=('127.0.0.1', 7894), raddr=('127.0.0.1', 59049)>
# addr = ('127.0.0.1', 59049) 客户端监听的地址,从这个端口发给客户端
print(conn, addr)

print("接听成功------")
data = conn.recv(1024)      # 设置接受的信息长度 1024字节
print("recv:", data)
conn.send(data.upper())     # 设置返回给客户端的信息

server.close()      # 默认监听一次就退出了

猜你喜欢

转载自www.cnblogs.com/dongqunren/p/10181244.html