python简单socket demo

socket说明

socket本质是编程接口(API),对TCP/IP的封装,TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口。除了常见的http请求之外,一些敏感的数据传输常用socket套接字层直接传输数据。一个简单的domo用于熟悉socket的工作方式。

代码

server服务端

# 导入socket
import socket

# 设置代理地址
ip_port = ('127.0.0.1', 8888)

# 创建一个socket的对象
s = socket.socket()
# 绑定ip和端口
s.bind(ip_port)

# 开启监听
s.listen()

print("等待用户连接中")

while(True):
    conn, addr = s.accept()
    if conn is not None:
        # print(addr)
        print('有一个用户连接\n等待对方发送信息')


    while (True):

        try:
            recv_data = conn.recv(1024)


            # 显示接收的信息
            print('对方发送的信息:', str(recv_data, encoding='utf-8'))
            send_data = input('我回复>>').strip()

            conn.send(bytes(send_data, encoding='utf-8'))
            print('等待对方发送信息>>')
        except Exception:
            print('远程主机强迫关闭了一个现有的连接,续继等待其它的连接。')
            break
    conn.close()




client客户端

# 客户端

import socket

# 待建立连接HOST的ip/port
ip_port = ('127.0.0.1', 8888)
# 建立socket
s = socket.socket()
# 建立连接
s.connect(ip_port)
while (True):
    # 待发送的信息
    send_data = input('给对方发送信息:').strip()
    s.send(bytes(send_data, encoding='utf-8'))
    print('等待对方回复:')
    # 接收信息并显示
    recv_data = s.recv(1024)
    print("recv_data内容: ", recv_data)

    print('你有新的消息:', str(recv_data, encoding='utf-8'))
s.close()

效果

python简单socket demo_第1张图片

参考文章

https://blog.csdn.net/lxy210781/article/details/80641910

你可能感兴趣的:(开发,python,开发语言)