2013-04-26 21 views
2

我有一個python腳本,它創建一個變量heading。我想將這個標題傳送給無線ad-hoc網絡中的另一個節點。如何連接2個節點並使用python套接字通過它們發送數據?

我看了很多教程和示例,但我不太明白哪一端是哪個插座。

我想我已經創建的變量我將不得不代碼像這樣的節點上:

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
s.connect((ipv4_address, 50086)) 
s.send(heading) 

而在接收端我想要的東西,聽相同的端口等待到達的標題上:

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
s.bind((ipv4_address, 50086)) 
while 1: 
    data = client_socket.recv(512) 

我不知道如果我得到連接,並以正確的方式綁定?

回答

1
  • 服務器部分必須執行序列socket()bind()listen()accept()。您的服務器部件當前不會將listen連接到套接字,也不會連接accept連接。另外,服務器部分應該由accept返回的套接字數據爲recv,但不是您正在收聽的數據。
  • 您需要確保heading變量是一個字符串。否則,您可能需要使用JSONpickle模塊來序列化您的對象。

我建議你在官方Python文檔中閱讀socket module examples

+0

我不確定'pickle'是否是通過線路發送數據的正確的東西,特別是當服務器必須懷疑任何人可以連接時... – glglgl 2013-04-26 14:24:33

+0

@Alexey使用json/pickle有什麼優勢嗎? – 2013-04-26 14:28:18

+0

@Alexey也 - 這是一個非常愚蠢的問題 - 但服務器是接收端? – 2013-04-26 14:29:36

相關問題