Erlo

python服务器端+客户端

2019-10-26 22:31:20 发布   842 浏览  
页面报错/反馈
收藏 点赞

1、最简单的服务端和客户端

服务端代码

import socket                    #网络编程需要用到socket模块

server = socket.socket()         #创建一个用于监听连接的Socket对像(服务器端) 
server.setblocking(socket.SOL_SOCKET,socket.SO_REUSEADDR,1) #解决服务重启时报address already in use
server.bind((127.0.0.1, 9001)) #设置服务端的ip和端口号
server.listen()                  #开始监听

conn, addr = server.accept()     #接受服务器端发出的消息和地址信息
c_info = conn.recv(1024)         #将接受的消息存入到c_info变量中
print(c_info)
conn.send(bhello word)         #向客户端发出消息
conn.close()                     #关闭连接
server.close()                   #关闭服务端

 

客户端代码

import socket                        #网络编程需要用到socket模块

client = socket.socket()             #创建一个客户端
client.connect((127.0.0.1, 9001))  #连接服务端

client.send(bnice to meet you)     #向服务端发消息
s_info = client.recv(1024)           #接受服务端发来的消息
print(s_info)
client.close()                       #关闭客户端

2、可交互的服务端和客服端

 服务端代码

import socket

server = socket.socket()
server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
server.bind((127.0.0.1, 9001))
server.listen()

conn, addr = server.accept()
while True:
    info=input(>>>)                        #输入数据,编码并发送给客户端
    info=info.encode(utf-8)                
    conn.send(info)                          
    c_info = conn.recv(1024).decode(utf-8) #接受客户端消息并解码
    print(c_info)
    if c_info == bye:                      #当客户端发送bye时,服务端给客户端发送bye并结束循环
        conn.send(bbye)
        break
conn.close()
server.close()

客户端代码

import socket

client = socket.socket()
client.connect((127.0.0.1, 9001))
while True:
    s_info = client.recv(1024)               #接受服务端的消息并解码
    s_info = s_info.decode(encoding=utf-8)
    print(s_info)
    if s_info == bye:                     #如果服务端发送的消息为bye,回复bye,结束循环
        client.send(bbye)
        print(bye_1)
        break

    info = input(>>>)                     #输入数据,编码并发送给服务端
    info = info.encode(utf-8)
    client.send(info)
client.close()

总结:无论是服务端和客户逻辑是怎样的,服务端和客户端收发要对应。

代码亲测过,只写了逻辑实现,改进空间很大,请多指点。

登录查看全部

参与评论

评论留言

还没有评论留言,赶紧来抢楼吧~~

手机查看

返回顶部

给这篇文章打个标签吧~

棒极了 糟糕透顶 好文章 PHP JAVA JS 小程序 Python SEO MySql 确认