<----这是一个简单的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关键字就自动退出连接