ポート 4500 でクライアント要求を待機している IP アドレス 192.168.1.100 のサーバーである Java でクライアント/サーバー アプリケーションを作成したいと考えています。
クライアントはキーボードから文字列を読み取り、接続要求をサーバーに送信します。接続が確立されると、文字列がサーバーに送信されます。
これは私が試したコードです:
サーバー用:
import java.net.*;
import java.io.*;
public class Serveur {
public Serveur() {
// TODO Auto-generated constructor stub
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
try
{
ServerSocket ecoute;
ecoute = new ServerSocket(1111);
Socket service = null;
System.out.println("Serveur en attente d'un client !");
while(true)
{
service = ecoute.accept();
System.out.println("Client connécté !");
DataInputStream is = new DataInputStream(service.getInputStream());
System.out.println("Client dit : " + is.readUTF().toUpperCase());
service.close();
}
}
catch(IOException e)
{
e.printStackTrace();
}
}
}
クライアントの場合:
import java.net.*;
import java.io.*;
import java.util.Scanner;
public class Client {
public Client() {
// TODO Auto-generated constructor stub
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("Connexion en cours ...");
try {
Socket s = new Socket("localhost", 1111);
DataOutputStream os = new DataOutputStream(s.getOutputStream());
Scanner sn = new Scanner(System.in);
os.writeUTF(sn.nextLine());
} catch ( IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("Connécté au serveur !");
}
}
しかし、私はこのコードに問題がありました:
java.net.ConnectException: 接続がタイムアウトしました: java.net.DualStackPlainSocketImpl.connect0 (ネイティブ メソッド) で接続します。 java.net.AbstractPlainSocketImpl.connect(不明なソース) の java.net.AbstractPlainSocketImpl.connect(不明なソース) の net.AbstractPlainSocketImpl.connectToAddress(不明なソース) java.net.SocksSocketImpl.connect(不明なソース) の java.net.PlainSocketImpl.connect(不明なソース) java.net.Socket の Socket.connect (不明なソース) java.net.Socket の Socket.connect (不明なソース)。java.net.Socket の (不明なソース) Client.main (Client.java: 18)