2012-01-26 7 views
10

私は、Luaソケットページからソケットサーバーのサンプル用の単純なluaソケットクライアントを作成しようとしています。luaソケットクライアント

サーバーの部分は動作しますが、私はtelnetで試しました。

しかし、クライアント部分は機能していません。

local host, port = "127.0.0.1", 100 
local socket = require("socket") 
local tcp = assert(socket.tcp()) 

tcp:connect(host, port); 
tcp:send("hello world"); 

これに接続してデータを送信し、その一部を受け取ることのみが想定されています。

誰かが問題解決に手伝ってもらえますか?

答えて

19

あなたのサーバーは、おそらく1行で受信しています。 receive文書に記載されているように、これはデフォルトの受信パターンです。クライアントメッセージに改行を追加してみてください。これでサーバー上の受信は完了です。

local host, port = "127.0.0.1", 100 
local socket = require("socket") 
local tcp = assert(socket.tcp()) 

tcp:connect(host, port); 
--note the newline below 
tcp:send("hello world\n"); 

while true do 
    local s, status, partial = tcp:receive() 
    print(s or partial) 
    if status == "closed" then break end 
end 
tcp:close() 
+1

ワウのおかげです。それがそれでした。 :) – user1058431

+0

または、別の「受信」パターンを使用してください。 'ローカルthreebytes = tcp:受信(3)'。 – Phrogz