python socket(二)接收多个消息

来源:互联网 发布:多益网络工资怎么样 编辑:程序博客网 时间:2024/06/11 09:19

在python socket(一)中,客户端每次只能发送一次消息,然后连接就断开。

把客户端修改一下,加入一个循环就能让它发送多个消息和接收。

server端代码:

# -*- coding: utf-8 -*-### socket_server# Created on July 7 2016# @author:huangpingyi##import socketHOST = ''  # 本地localhostPORT = 50007s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)s.bind((HOST, PORT))s.listen(1)conn, addr = s.accept()#接受连接print 'Connected by', addrwhile True:          data = conn.recv(1024) # 1024个字节        #单连接,没有数据断开,服务器断开          if not data:              break          print 'Received', data          msg = raw_input(">>:").strip()          if len(msg) == 0:            continue    #s.sendall('Hello Huangpingyi')          conn.sendall(msg)conn.close()


client端

# -*- coding: utf-8 -*-### socket_client# Created on July 7 2016# @author:huangpingyi##import socketHOST = 'localhost'PORT = 50007s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)s.connect((HOST, PORT))while True:    msg = raw_input(">>:").strip()    if len(msg) == 0:        continue    elif msg == "exit":        break        #s.sendall('Hello Huangpingyi')    s.sendall(msg)    data = s.recv(1024)    print 'Received', datas.close()
客户端先发消息,因为服务器端是被动的,只有监听到客户端有连接时才能回应。

客户端输入exit时,连接断开。







0 0