tcp服务器c#在windows上,tcp客户端python raspberry pi

tcp服务器c#在windows上,tcp客户端python raspberry pi,c#,python,sockets,tcp,C#,Python,Sockets,Tcp,我正在做我的项目,我必须在windows上用c#编写的tcp服务器和raspbian上用python编写的客户端(raspberry pi)之间进行通信。我的服务器工作正常(在本地机器上测试,客户端使用c#),但当运行时,客户端数据没有发送到服务器端 c#代码: python代码: def send(ctrl_cyc): HOST, PORT = "10.93.34.41", 5000 data = "" data += str(ctrl_cyc) # Create a socket (SO

我正在做我的项目,我必须在windows上用c#编写的tcp服务器和raspbian上用python编写的客户端(raspberry pi)之间进行通信。我的服务器工作正常(在本地机器上测试,客户端使用c#),但当运行时,客户端数据没有发送到服务器端

c#代码:

python代码:

def send(ctrl_cyc):

HOST, PORT = "10.93.34.41", 5000
data = ""
data += str(ctrl_cyc)

# Create a socket (SOCK_STREAM means a TCP socket)
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

try:
# Connect to server and send data
    sock.connect((HOST, PORT))
    sock.sendall(bytes(data + "\n", "utf-8"))

finally:
    sock.close()
return True
import socket

HOST, PORT = "10.XX.XX.XX", 5000
ctrl_cyc="1234567"
data = ""
data += str(ctrl_cyc)

    # Create a socket (SOCK_STREAM means a TCP socket)
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

try:
    # Connect to server and send data
    sock.connect((HOST, PORT))
    sock.sendall(bytes(data + "\n"))
    data = sock.recv(1024)
    print data

finally:
    sock.close()

当您绑定到特定IP地址时,服务器仅侦听用于此IP地址的接口。因此,如果您有一个以上的网络适配器,并且希望监听所有适配器,请在TcpListener的构造函数中使用
IpAddress.Any

如果情况并非如此,您能否向我们提供更多信息:
客户是否提供了任何错误信息/异常?您是否嗅探过客户端和服务器之间的通信量?连接建立了吗

我找到了解决办法。。。我想我找到了。 问题是,我的帐户可能无权监听网络中的其他设备(网络配置)。我在管理员的电脑上试用了我的解决方案,它正在工作,我也把它放在公司的服务器上,它工作得很好

如果有人需要,这里有代码

c#代码:

python代码:

def send(ctrl_cyc):

HOST, PORT = "10.93.34.41", 5000
data = ""
data += str(ctrl_cyc)

# Create a socket (SOCK_STREAM means a TCP socket)
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

try:
# Connect to server and send data
    sock.connect((HOST, PORT))
    sock.sendall(bytes(data + "\n", "utf-8"))

finally:
    sock.close()
return True
import socket

HOST, PORT = "10.XX.XX.XX", 5000
ctrl_cyc="1234567"
data = ""
data += str(ctrl_cyc)

    # Create a socket (SOCK_STREAM means a TCP socket)
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

try:
    # Connect to server and send data
    sock.connect((HOST, PORT))
    sock.sendall(bytes(data + "\n"))
    data = sock.recv(1024)
    print data

finally:
    sock.close()

首先请tnx回复。我按照你的建议改为“IpAddress.Any”,现在我可以在不同的计算机上与另一个windows c#客户端通信,但仍然可以与我的rpi通信。尝试在服务器上连接时出现超时错误。有什么猜测吗?从两台设备的命令行ping也可以正常工作,如果您可以从C#客户端连接到另一台计算机上的服务器,那么您的服务器应该是正常的。由于我对pythonsockets和raspertypi都没有经验,我只能猜测下一步该怎么做。也许您可以尝试连接到internet上的web服务器,如上的第一个示例所示,或者检查Raspery PI是否具有阻止传出套接字连接的配置…Tnx用于您的帮助,但不幸的是,所有内容都与教程中的一样。可能是我的win com服务器上的网络权限或其他问题。我会继续努力的。