python简单的socket编程,实现服务器和客户端进行聊天

2021/8/11 14:06:49

本文主要是介绍python简单的socket编程,实现服务器和客户端进行聊天,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

<----这是一个简单的socket编程通信,使用了tcp协议。后续继续学习会进一步完善的,谢谢!!---->

服务器端源码

#导入网络编程模块
import socket
#实例化一个网络编程对象
s=socket.socket()    #类似买手机
#绑定ip地址,如果绑定本机ip的话,其他人都可访问,我们在测试过程中尽量使用127.0.0.1,表示本机地址,但是其他人访问不了
s.bind(('127.0.0.1',9000))  #类似绑定卡号,9000为应用接口
#进行监听
s.listen()#类似开机
#等待连接
print('等待客户端连接中......')
#接受信息连接和地址的对象
conn,addr=s.accept()  #类似接电话
msg1=conn.send('服务器开放时间为:早上八点到晚上十二点。请各位客户悉知!谢谢!!'.encode('utf-8'))
msg=conn.recv(1024)
print(msg.decode('utf-8'))
#

#
while True:
    msg=conn.recv(1024)#接受1024个字节信息
    print('客户端:',msg.decode('utf-8'))
    inp=input('服务器:')
    if inp=='exit':
        conn.send('服务器关闭了,请下次再来吧'.encode('utf-8'))
        break
    conn.send(inp.encode('utf-8'))#发送消息
#关闭一个客户端的连接
print('已经关闭一个客户端的连接!')
conn.close()#挂电话
print('关闭服务器!')
s.close()#关机

客户端源码

import socket
s=socket.socket()
s.connect(('127.0.0.1',9000))
s.send('客户端1已经连接上了'.encode('utf-8'))
msg1=s.recv(1024)
print(msg1.decode('utf-8'))
while True:
    inp=input('客户端:')
    if inp=='exit':
        s.send('客户端1断开连接了'.encode('utf-8'))
        break
    else:
        s.send(inp.encode('utf-8'))#为什么发送不出去
        msg=s.recv(1024)#接受1024个字节
        print('服务器:',msg.decode('utf-8'))
#s.send('你好,服务器')会出现错误TypeError: a bytes-like object is required, not 'str',因为需要字节传输
#那你是用utf-8进行编码,所以服务器端需要用utf-8进行解码
print('客户端1关闭会话!')
s.close()

实现过程

(1)首先启动服务器端程序

(2)然后启动客户端程序

(3)最后就可以进行通信了

(4)程序中设置了客户端或者服务器输入exit关键字就自动退出连接


                   

这篇关于python简单的socket编程,实现服务器和客户端进行聊天的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程