Python3,socket编程,简单实现会话功能

本文做简单理解之用,专业内容需要专业书籍获取。
socket编程主要实现网络通信之用,我们在上网的时候,向别人发送一个消息,主要经历三个过程:

1.你好,我想认识你,美女/帅哥(打招呼)
2.可以(获得同意)
3.你的联系方式是(发送的内容)

python在进行socket编程的时候,也是这么一个过程,本例也正好利用常见的发消息举个例子。这里主要用到的一个类库是,socket。以服务端为例

serve.py

import socket
sk=socket.socket()
address=('127.0.0.1',8000)

sk.bind(address)
sk.listen()

while True:
    print('等待客户端链接' + '.' * 20)
    connect, client = sk.accept()
    print(str(client)+'上线')
    while True:
        try:
            inp = input('>>>请输入:')
            connect.send(bytes(inp, 'utf8'))
            data = connect.recv(1024)
            if not data:break
            print(str(data, 'utf8'))
        except ConnectionResetError:
            print('-'*10+'对方离线'+'-'*10)
            break

sk.close()

1.创建一个socket对象sk=socket.socket()
2.绑定IP地址和端口address=('127.0.0.1',8000)
3.监听这个端口sk.bind(address)
4.等待客户端链接connect, client = sk.accept()
5.发送内容或者接收内容 connect.send(bytes(inp, 'utf8'))

1,2,3步都是为打招呼做准备,4步等待客户端介入,并且获取同意,5步发送内容


在客户端,只需要请求链接服务端,而服务端会监听到端口会同意。

client.py

import socket

sk=socket.socket()

try:
    sk.connect(('127.0.0.1',8000))
except ConnectionRefusedError:
    print('-'*10+'服务器未上线,或者不存在'+'-'*10)
    exit()

while True:
    try:
        data = sk.recv(1024)
    except ConnectionResetError:
        print('-'*10+'服务器歇菜了'+'-'*10)
        break
    print(str(data, 'utf8'))
    inp = input('>>>请输入:')
    if inp =='exit':
        break
    sk.send(bytes(inp, 'utf8'))

sk.close()

sk.connect(('127.0.0.1',8000)) 为链接服务段的请求。

代码演示如下:


Python3,socket编程,简单实现会话功能_第1张图片
image.png

3.发送内容,客户端就收到了,此时客户端也可以回复服务端的响应

你可能感兴趣的:(Python3,socket编程,简单实现会话功能)