python socket(二)接收多個消息

python socket(一)中,客戶端每次只能發送一次消息,然後連接就斷開。

把客戶端修改一下,加入一個循環就能讓它發送多個消息和接收。

server端代碼:

# -*- coding: utf-8 -*-
##
# socket_server
# Created on July 7 2016
# @author:huangpingyi
##
import socket


HOST = ''  # 本地localhost
PORT = 50007
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.bind((HOST, PORT))
s.listen(1)

conn, addr = s.accept()#接受連接
print 'Connected by', addr
while 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 socket

HOST = 'localhost'
PORT = 50007

s = 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', data
s.close()
客戶端先發消息,因爲服務器端是被動的,只有監聽到客戶端有連接時才能迴應。

客戶端輸入exit時,連接斷開。







發佈了55 篇原創文章 · 獲贊 22 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章