socket套接字通信

python

socket 套接字通信

1、什么是socket

  socket是一个模块,又称套接字,用来封装 互联网协议(应用层以下的层)

2、socket的作用

  socket可以实现互联网协议应用层以下的层的工作

 

3、怎么使用socket

  import socket

  写socket套接字:

    Client

    Server

  server.py文件内容:

"""

先启动套接字服务端

注意:

客户端一次发送,服务端先一次接收,再发送

"""

import socket

# 就好像:买手机

server = socket.socket()

# 绑定手机卡

# ip地址相当于手机号码

server.bind(("127.0.0.1", 9527))

# 半连接池

server.listen(5) # 最多5个人坐椅子 实际上==6

# 循环实现可接收多了用户访问

while True:

# 等待电话接入 ---> 客户端

# conn:指的是服务端通往客户端的管道

conn, addr = server.accept()

# 循环实现循环通信

while True:

try: # 监听代码块是否有异常

# 接听对方讲话的内容

# data 客户端发送过来的消息

data = conn.recv(1024) # 可接收一次1024 bytes的数据

if data.decode("utf-8") == "q":

break

if len(data) == 0:

break

print(data)

# 服务端向客户端发送消息

res = input("请回复客户端消息>>> ")

conn.send(res.encode("utf-8"))

# 捕获异常信息

except Exception as e:

# 打印异常

print(e)

break

# 关闭通信,挂电话

conn.close()

  client.py文件内容:

"""

启动服务端后再启动客户端

"""

import socket

# 买手机

client = socket.socket()

# 拨号

# 客户端的ip,port必须与服务器一致

client.connect(("127.0.0.1", 9527))

# 循环实现可接收多次服务端返回信息以及访问服务端信息

while True:

send_data = input("请发送服务端消息>>> ")

# 讲话给对方听

# 必须发送bytes

# client.send(b"hello")

# 或者编码

client.send(send_data.encode("utf-8"))

# 客户端收到服务端返回信息

data = client.recv(1024)

if data.decode("utf-8") == "q":

break

if len(data) == 0:

break

print(data)

# 关闭通信,挂电话

client.close()

  执行结果自行测试。

以上是 socket套接字通信 的全部内容, 来源链接: utcz.com/z/530271.html

回到顶部