【发布时间】:2014-04-08 12:35:30
【问题描述】:
所以,我在将数据从 C# 客户端发送到 Java 服务器时遇到了问题。连接正在建立,但我猜我在某个地方搞砸了。
这是服务器端代码
package com.chris.net;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
public class Server implements Runnable
{
private String serverName;
private boolean isRunning;
private ServerSocket serverSocket;
private Socket clientSocket;
public Server(String name, int port)
{
try
{
this.serverName = name;
this.serverSocket = new ServerSocket(port);
this.isRunning = true;
new Thread(this).start();
}
catch (IOException e)
{
e.printStackTrace();
}
}
private BufferedReader recv;
public void run()
{
while(isRunning)
{
try
{
clientSocket = serverSocket.accept();
System.out.println("Client Connected from " + clientSocket.getInetAddress().getHostAddress() + ":" + clientSocket.getPort());
recv = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
System.out.println("Data Recieved: " + recv.readLine());
clientSocket.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
}
这是客户端代码
lass TCPClient
{
private TcpClient Client;
private NetworkStream Stream;
private Byte[] Data;
public TCPClient(string address, int port)
{
Client = new TcpClient();
Client.Connect(address, port);
Stream = Client.GetStream();
SendData("Test Data");
while (Client.Connected)
{
}
}
public void SendData(string message)
{
Data = System.Text.Encoding.ASCII.GetBytes(message);
Stream.Write(Data, 0, Data.Length);
Console.WriteLine("Sent: {0}", message);
}
}
服务器注册连接,客户端似乎认为它已经发送了数据,但是我不知道是客户端没有发送数据还是服务器没有接收它。考虑到 Console.Writeline 只是打印出转换为字节的消息,我不知道。
【问题讨论】:
-
嗨,你有这个问题的最终解决方案吗?我有同样的问题,但我无法得到正确的解决方案:(