Python中的TCP编程,实现客户端与服务器的聊天(socket)
2018-01-15 18:52
651 查看
1、在TCP中,客户端的实现流程:(1)、创建客户端的socket对象 (2)、建立与服务器之间的联系 (3)、发送请求 (4)、接收数据 (5)、关闭连接
2、服务端的实现流程:(1)、创建服务端的socket对象 (2)、绑定服务端的地址 (3)、设置监听器 (4)、等待客户端的连接 (5)、接收客户端的请求 (6)、返回处理的结果到客户端
3、在TCP编程中,客户端和服务端的流程以及联系如下图:
4、有了上面的描述,下面就来写代码,分别是服务端和客户端的,起始也就是把上面的思路、流程翻译成代码就好了
client.py(客户端的代码)
(2)、server.py(服务端)
5、上面代码运行的结果
(1)、服务端的结果:
(2)、客户端的结果
2、服务端的实现流程:(1)、创建服务端的socket对象 (2)、绑定服务端的地址 (3)、设置监听器 (4)、等待客户端的连接 (5)、接收客户端的请求 (6)、返回处理的结果到客户端
3、在TCP编程中,客户端和服务端的流程以及联系如下图:
4、有了上面的描述,下面就来写代码,分别是服务端和客户端的,起始也就是把上面的思路、流程翻译成代码就好了
client.py(客户端的代码)
import socket #创建一个客户端的socket对象 client = socket.socket(socket.AF_INET, socket.SOCK_STREAM) #设置服务端的ip地址 host = "10.36.135.90" #设置端口 port = 9092 #连接服务端 client.connect((host, port)) #while循环是为了保证能持续进行对话 while True: #输入发送的消息 sendmsg = input("请输入:") #如果客户端输入的是q,则停止对话并且退出程序 if sendmsg=='q': break sendmsg = sendmsg #发送数据,以二进制的形式发送数据,所以需要进行编码 client.send(sendmsg.encode("utf-8")) msg = client.recv(1024) #接收服务端返回的数据,需要解码 print(msg.decode("utf-8")) #关闭客户端 client.close()
(2)、server.py(服务端)
import socket #创建服务端的socket对象socketserver socketserver = socket.socket(socket.AF_INET, socket.SOCK_STREAM) host = '10.36.135.90' port = 9092 #绑定地址(包括ip地址会端口号) socketserver.bind((host, port)) #设置监听 socketserver.listen(5) #等待客户端的连接 #注意:accept()函数会返回一个元组 #元素1为客户端的socket对象,元素2为客户端的地址(ip地址,端口号) clientsocket,addr = socketserver.accept() #while循环是为了能让对话一直进行,直到客户端输入q while True: #接收客户端的请求 recvmsg = clientsocket.recv(1024) #把接收到的数据进行解码 strData = recvmsg.decode("utf-8") #判断客户端是否发送q,是就退出此次对话 if strData=='q': break print("收到:"+strData) msg = input("回复:") #对要发送的数据进行编码 clientsocket.send(msg.encode("utf-8")) socketserver.close()
5、上面代码运行的结果
(1)、服务端的结果:
(2)、客户端的结果
相关文章推荐
- python socket 创建tcp服务器和客户端改进版(实现半双工聊天)
- Android Socket编程基于TCP实现客户端与服务器简易通信
- 【python】网络编程-SocketServer 实现客户端与服务器间非阻塞通信
- Python网络编程之socket编程(一)--使用TCP和UDP客户端和服务器通信
- python socket实现简单的(TCP/UDP)服务器/客户端
- C# 网络编程之Tcp实现客户端和服务器聊天
- java 通过 socket 实现 服务器和客户端的通信 TCP
- iOS 网络编程实践--NSStream实现TCP Socket iPhone客户端
- iOS 网络编程实践--NSStream实现TCP Socket iPhone客户端 .
- iOS网络编程实践--NSStream实现TCP Socket iPhone客户端
- WINDOWS (服务器) 和 DOS(客户端) 网络互连 基于TCP/IP的编程实现
- WINDOWS (服务器) 和 DOS(客户端) 网络互连 基于TCP/IP的编程实现
- 初探基于TCP的服务器/客户端结构的聊天系统(四)视频聊天的实现
- android的Socket编程---实现简单的服务器,并与客户端通信
- 网络编程资料总结(二)----Tcp多线程服务器和客户端的实现
- Android Socket编程android端服务器和客户端的实现
- c++ 网络编程 socket 聊天客户端/服务器
- iOS网络编程实践--NSStream实现TCP Socket iPhone客户端
- WINDOWS (服务器) 和 DOS(客户端) 网络互连 基于TCP/IP的编程实现
- 客户端服务器基于Socket的UDP和TCP编程介绍