ソケット通信でPythonと値を送受信したい
aoeu  2018/12/11(Tue) 21:11
ソケット通信でPythonと整数または文字列を送受信したいと思っています.コードは以下の通りです.
c++側から送った値はPython側で読み込めるのですが,Python側から送った値をc++側で読み込むことができません.どうしたらよいでしょうか.
環境はVisual Studio Community 2017,Python3.6です.


**************************************************
C++
**************************************************
# include <Siv3D.hpp>
# include <iostream>

void Main()
{
TCPServer server;
server.startAccept(50000);
Point friendPos(0, 0);

Window::SetTitle(L"TCPServer: 接続待機中...");

char data[4] = {};

while (System::Update())
{
if (server.isConnected())
{
Window::SetTitle(L"TCPServer: 接続完了!");

while (server.read(data, 4));
Console::Open();
std::cout << "data = " << data << std::endl;
Console::Close();
server.send("456");
}

if (server.hasError())
{
server.disconnect();

Window::SetTitle(L"TCPServer: 再接続待機中...");

server.startAccept(50000);
}
}
}
**************************************************


**************************************************
python
**************************************************
import socket

with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.connect(('127.0.0.1', 50000))
s.sendall(b"123")
data = s.recv(32)
print(data)
**************************************************
記事編集
Reputeless  2018/12/12(Wed) 12:01
Python わからないので推測ですが、
s.sendall(b"123")
で送られるデータが 4 バイトに満たないので
server.read(data, 4)
が true を返さないのではないかと思います。
編集
aoeu  2018/12/14(Fri) 14:25
返信が遅くなってすみません.指摘して頂いた通りでした.
文字列を送受信することができました.ありがとうございます.
編集
件名
Re: ソケット通信でPythonと値を送受信したい
名前
コメント
画像添付


投稿修正キー (投稿を修正する時に使います)
画像認証 (右画像の数字を入力) 投稿キー

- WEB PATIO -