当前位置:   article > 正文

Socket服务端与客户端_socket服务端和客户端

socket服务端和客户端

Socket


前言

提示:这里可以添加本文要记录的大概内容:

Socket主要负责进程之间的网络数据传输,好比数据的搬运工
本文介绍了简易的客户端和服务端的开发


提示:以下是本篇文章正文内容,下面案例可供参考

一、Socket服务端开发

1.介绍:

等待其它进程的连接、可接受发来的消息、可以回复消息

2.创建Socket对象
import socket
socket_server = socket.socket()
  • 1
  • 2
3.绑定socket_server到指定IP和地址
socket_server.bind(("localhost",8888))
#localhost 表示主机IP,8888表示地址
  • 1
  • 2
4.监听端口
socket_server.listen(1) # listen内表示允许接收的连接数量
  • 1
5.等待客户端连接
# result = socket_server.accept()
# conn = result[0]        # 客户端和服务端的连接对象
# address = result[1]     # 客户端的地址信息
conn,address = socket_server.accept()   # 连接对象和地址信息
# accept()是阻塞的方法,如果无连接就不向下执行
print(f"接收到了客户端的连接,连接信息是,{address}")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
6.接收客户端信息
data: str = conn.recv(1024).decode("UTF-8")
    # recv接受的参数是缓冲区大小,一般为1024
    # recv方法的返回值是一个字节数组也就是bytes对象,可以通过decode方法进行解码,转变为str
    print(f"客户端发来的消息是{data}")
  • 1
  • 2
  • 3
  • 4
7.发送回复消息
msg = input("请输入回复消息")
conn.send(msg.encode("UTF-8")) # encode编码为字节数组对象
  • 1
  • 2
8.关闭连接
conn.close()
socket_server.close()
  • 1
  • 2
服务端完整代码
import socket
socket_server = socket.socket()

socket_server.bind(("localhost",8888))

socket_server.listen(1)

conn,address = socket_server.accept()
print(f"接收到了客户端的连接,连接信息是,{address}")

while True:
    data: str = conn.recv(1024).decode("UTF-8")
    print(f"客户端发来的消息是{data}")
    msg = input("请输入回复消息")
    if msg == 'exit':
        break
    conn.send(msg.encode("UTF-8"))
    
conn.close()
socket_server.close()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

二、Socket客户端开发

1.介绍:

主动连接服务端、可以发送消息、可以接收回复

2.创建Socket对象
import socket
socket_client = socket.socket()
  • 1
  • 2
3.连接到服务端
socket_client.connect(("localhost",8888))
  • 1
4.发送消息
msg = input("请输入要发送的消息:")
socket_client.send(msg.encode("UTF-8"))
  • 1
  • 2
5.接收返回消息
recv_data = socket_client.recv(1024)    # 缓冲区大小,一般为1024
    print(f"接受的信息为:{recv_data.decode('UTF-8')}")    # 解码
  • 1
  • 2
6.关闭连接
socket_client.close()
  • 1
客户端完整代码
import socket
socket_client = socket.socket()

socket_client.connect(("localhost",8888))

while True:
    msg = input("请输入要发送的消息:")
    if msg == 'exit':
        break
    socket_client.send(msg.encode("UTF-8"))

    recv_data = socket_client.recv(1024)   
    print(f"接受的信息为:{recv_data.decode('UTF-8')}")  

socket_client.close()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

总结

以上就是今天要讲的内容,本文仅仅简单介绍了Socket的基础使用,适合入门

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/622886
推荐阅读
相关标签
  

闽ICP备14008679号