python socket编程之客户端和服务端简单交互
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python socket编程之客户端和服务端简单交互相关的知识,希望对你有一定的参考价值。
服务端 #_*_ coding:utf-8 _*_ #导入socket模块 import socket # 创建socket对象 sk = socket.socket() #绑定侦听的IP和端口号 ip_port = (‘192.168.9.213‘,9999) sk.bind(ip_port) #最大连接数 sk.listen(5) #接受请求,接受请求的时候可以获取到客户端的socket对象,以及客户端的IP和端口 #通过while循环,让服务端一直接受客户端请求 print "正在等待客户端请求" while True: conn ,address = sk.accept() # conn变量存储的是客户端的socket对象(conn就是客户端),变量address存储的是客户端的IP地址和端口 print "已发生请求的客户端,IP:%s 端口:%s" % (address[0], address[1]) #给客户端发一条信息内容 conn.send(‘hello word!‘) #给客户端发送消息 #一直侦听客户端发送过来的消息 while True: client_data = conn.recv(1024) #接受客户端发送过来的消息 print client_data if client_data == ‘exit‘: break conn.send(‘sb‘) #向客户端发送消息 conn.close() 客户端
#_*_ coding:utf-8 _*_ #导入socket模块 import socket #创建socket对象 client = socket.socket() #连接服务器 ip_port = (‘192.168.9.213‘,9999) client.connect(ip_port) #和服务端建立连接 while True: #获取数据 data = client.recv(1024) #接受服务端发送过来的消息 print data #打印服务端发送过来的消息 #向服务端发送消息 inp = raw_input(‘client data:‘) client.send(inp) # 向服务端发送消息 if inp == ‘exit‘: break
执行过程
执行过程
1、服务端侦听
2、客户端和服务端建立连接
3、服务端向客户端发送一条消息“hello world!”
4、客户端接受消息
5、接着,客户端可以输入消息,发送给服务端
6、服务端接收客户端发送过来的消息
7、然后向客户端发送一条消息“sb”
8、客户端接收消息
9、客户端可以输入消息,发送给服务端
10、服务端接收客户端发送过来的消息
11、然后向客户端发送一条消息“sb”
12....一直循环
直到客户端输入的是“exit”发送给服务端
服务端判断,如果客户端发送过来的消息是exit,那么就停止侦听客户端发送过来的消息,这时候客户端也和服务端断开连接
补充一个服务端,实现可以同时处理多个客户端请求(异步多线程服务端)
#_*_ coding:utf-8 _*_ import SocketServer class MyServer(SocketServer.BaseRequestHandler): def setup(self): pass def handle(self): #print self.request,self.client_address,self.server conn = self.request conn.send(‘hello word!‘) #给客户端发一条信息内容 # 一直侦听客户端发送过来的消息 flag = True while flag: client_data = conn.recv(1024) #接受客户端发送过来的消息,1024代表最多只能在缓冲区拿数据的大小,缓冲区默认为8K print client_data conn.send(‘sb‘) # 向客户端发送消息 if client_data == ‘exit‘: print ‘连接的客户端已断开‘ flag = False conn.close() def finish(self): pass if __name__ == "__main__": server = SocketServer.ThreadingTCPServer((‘192.168.9.213‘,9999),MyServer) #侦听的IP和端口号 server.serve_forever()
本文出自 “FA&IT运维-Q群:223843163” 博客,请务必保留此出处http://freshair.blog.51cto.com/8272891/1878038
以上是关于python socket编程之客户端和服务端简单交互的主要内容,如果未能解决你的问题,请参考以下文章