【发布时间】:2012-03-09 11:50:08
【问题描述】:
我正在尝试通过 Wifi 通过 TCP 连接将数据从 C#.NET(Windows 应用程序)程序发送到 Java(Android 应用程序)程序,反之亦然。到目前为止,我成功地将数据从 Java 发送到 C#,但无法从 C# 发送到 Java。
下面是Java代码,我是用来创建连接和接收数据的:
ServerSocket serverSocket = null;
DataInputStream socketInputStream;
while (true) {
try {
String localIPAddr = getLocalIPAddress();
InetSocketAddress ipEndPoint = new InetSocketAddress(
InetAddress.getByName(localIPAddr), 8222);
serverSocket = new ServerSocket();
serverSocket.bind(ipEndPoint, 4);
workerSocket = serverSocket.accept();
socketInputStream = new DataInputStream(
workerSocket.getInputStream());
inputText.setText(socketInputStream.readUTF());
} catch (Exception ex) {
throw ex;
}
}
这里getLocalIPAddress()方法返回Android设备的IP地址。
以下是 Windows 应用程序中的 C# 代码,用于连接到 Android 的 IP 地址 (192.168.1.6) 并向其发送数据:
Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
void button1_Click(object sender, EventArgs e)
{
try
{
if (!clientSocket.Connected)
clientSocket.Connect(IPAddress.Parse("192.168.1.6"), 8222);
clientSocket.Send(Encoding.UTF8.GetBytes(txtInput.Text));
}
catch (Exception ex)
{
throw ex;
}
}
好吧,客户端 (C#) 无法连接到服务器 (Java) 这意味着数据没有从客户端离开。但它会,如果它得到连接。请告诉我我错过了什么以及我在哪里弄错了。 :)
【问题讨论】:
-
到底发生了什么?数据是否离开源计算机?它到达目标了吗?
-
你能发布你的clientSocket声明吗?
-
客户端 (C#) 无法连接到服务器 (Java) 这意味着数据没有从客户端离开。但它会,如果它得到连接。
标签: java c# android sockets tcp