javaプログラムを使用してサーバーにデータを読み書きしようとしています。私はコンソールを使ってデータを書いています。私は正常にデータをサーバーに書き込むことができますが、サーバーが送信したデータを読み取ろうとすると問題が発生します。Javaのサーバーからデータを読み取ることができません
import java.io.*;
import java.net.*;
public class EMSSocketConnection {
public static void main(String[] args) throws Exception {
createSocket();
}
private static void sendMessage(DataOutputStream out) throws Exception
{
try
{
BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in));
String userOutput;
while ((userOutput = stdIn.readLine()) != null)
{
out.writeBytes(userOutput);
out.write('\n');
}
out.flush();
}
catch(Exception ex)
{
System.out.println(ex.getStackTrace());
}
finally
{
out.close();
}
}
private static void readResponse(DataInputStream in) throws Exception
{
try
{
byte[] data = new byte[1024];
in.readFully(data);
System.out.println(data);
}
catch (Exception ex)
{
System.out.println(ex.getMessage());
}
finally
{
in.close();
}
}
private static void createSocket()
{
try
{
int port = 2345;
InetAddress address = InetAddress.getByName("192.100.100.129");
final Socket client = new Socket(address, port);
final DataOutputStream out = new DataOutputStream(client.getOutputStream());
final DataInputStream in = new DataInputStream(client.getInputStream());
System.out.println("Successfully Connected");
new Thread() {
public void run() {
synchronized(client)
{
try {
while(true)
{
sendMessage(out);
readResponse(in);
}
}
catch (Exception ex)
{
System.out.println(ex.getMessage());
}
}
}
}.start();
}
catch(Exception ex)
{
ex.getStackTrace();
}
}
}
どのようにしてサーバーからデータを正常に読み取ることができますか?
問題が何ですか。特定のエラーメッセージやスタックトレースがありますか? – beny23
エラーメッセージはありません。サーバーからコンソールに送信データを印刷できません。 – Stardust
サーバーが1024バイトを送信していますか?どのようなデータですか?文字列、数字? – beny23