pyzmqの4パターン(PAIR)ノート

5610 ワード

今日pyzmqを学んで、感じはどのようですか、ホームページの初めを见て、记录して、基本的に同じく翻訳を计算することができます
Exclusive pair patternの特徴:
           1. 双方向通信
           2. ソケット無状態(パッケージは良いでしょう)
           3. ピアツーピア接続しかありません(これは何の役に立つのか、何の役にも立たないようです)
           4. サービス・エンド・リスニング、クライアント接続
そして:message受信の完全な不完全さを考える必要はありません.あなたはそのようにします.(原文)
公式exampleはここにあります.
pairserver.py
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
import zmq
import random
import sys
import time

port = "5556"
context = zmq.Context()
socket = context.socket(zmq.PAIR)
socket.bind("tcp://*:%s" % port)
while True:
    socket.send("Server message to client3")
    msg = socket.recv()
    print msg
    time.sleep(1)

pairclient.py
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
import zmq
import random
import sys
import time

port = "5556"
context = zmq.Context()
socket = context.socket(zmq.PAIR)
socket.connect("tcp://localhost:%s" % port)
while True:
    msg = socket.recv()
    print msg
    socket.send("client message to server1")
    socket.send("client message to server2")
    time.sleep(1)

 
それからrunは起きて、少し小さい問題、clientは連続してsendして2回、serverは大丈夫で、1つ応答して、clientのrecv()は2つの“Server message to client 3”を受け取るべきではありませんか
サーバを変更:
import zmq
import time

port = '5556'
context = zmq.Context()
socket = context.socket(zmq.PAIR)
socket.bind('tcp://*:%s'%port)
i = 0
while True:
	i += 1
	print 'begin:',i
	socket.send('msg from server:'+str(i))
	msg = socket.recv()
	print 'msg:%s'%msg
	time.sleep(1)

run起きて:
client: 
begin
msg from server:1
begin
msg from server:2
begin
msg from server:3

 server:
begin: 1
msg:client msg to server -1
begin: 2
msg:client msg to server -2
begin: 3
msg:client msg to server -1
begin: 4
msg:client msg to server -2
begin: 5
msg:client msg to server -1
begin: 6

はい、それは確かにmessageを失っていません.ほほほとしか言えません.このパッケージは、少し違和感があります.