[英]Java Client C# Server sending issue
I am trying to set up Client-Server communication where C# is the server side and Java is the client side.
我正在尝试建立客户端-服务器通信,其中C#是服务器端,而Java是客户端。 The connection is successful and I am able to send a string from C# to Java.
连接成功,我能够将字符串从C#发送到Java。 However, I am having issues sending a string from Java to C#.
但是,我在从Java向C#发送字符串时遇到问题。 The Server does not get any input.
服务器未获得任何输入。
My code is the following: Server Side C#
我的代码如下:服务器端C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Net.Sockets;
using System.IO;
namespace ServerToJava
{
class Program
{
static void Main(string[] args)
{
TcpListener serverSocket = new TcpListener(5678);
int requestCount = 0;
TcpClient clientSocket = default(TcpClient);
serverSocket.Start();
Console.WriteLine(" >> Server Started");
clientSocket = serverSocket.AcceptTcpClient();
Console.WriteLine(" >> Accept connection from client");
requestCount = 0;
NetworkStream networkStream = clientSocket.GetStream();
try
{
requestCount = requestCount + 1;
string serverResponse = "Last Message from client server This is a test";
Byte[] sendBytes = Encoding.ASCII.GetBytes(serverResponse);
networkStream.Write(sendBytes, 0, sendBytes.Length);
Console.Write ("ReadClient Thread started");
int length = networkStream.ReadByte ();
byte[] buffer = new byte[length];
int size = networkStream.ReadByte ();
byte[] buff = new byte[size];
using (var memoryStream = new MemoryStream(buff,false)) {
using (var streamReader = new StreamReader(memoryStream, Encoding.UTF8)) {
var message = streamReader.ReadLine();
buff = Encoding.UTF8.GetBytes(message);
networkStream.Read(buffer, 0 ,buffer.Length);
Console.Write (message);
networkStream.Flush();
}
}
}
catch (Exception ex)
{
}
clientSocket.Close();
serverSocket.Stop();
Console.WriteLine(" >> exit");
Console.ReadLine();
}
}
}
Client Side Java
客户端Java
OutputStream out;
Socket s = new Socket("127.0.0.1", 5678);
BufferedReader input =
new BufferedReader(new InputStreamReader(s.getInputStream()));
String answer = input.readLine();
JOptionPane.showMessageDialog(null, answer);
out= s.getOutputStream();
out.write('a');
System.exit(0);
You shouldn't use new TcpListener(5678)
it is Obsolete , instead use the following: 您不应使用过时的
new TcpListener(5678)
,而应使用以下代码:
// Set the TcpListener on port 5678.
Int32 port = 5678;
IPAddress localAddr = IPAddress.Parse("127.0.0.1");
TcpListener server = new TcpListener(localAddr, port);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.