【发布时间】:2013-03-13 16:53:47
【问题描述】:
我想在 java 上创建一个客户端/服务器应用程序,服务器的 IP 地址为 192.168.1.100,在端口 4500 上等待客户端请求。
客户端从键盘读取字符串,向服务器发送连接请求。一旦建立连接,它将字符串发送到服务器。
这是我尝试过的代码:
对于服务器:
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(Native Method) 在 java.net.DualStackPlainSocketImpl.socketConnect(未知来源)在 java.net.AbstractPlainSocketImpl.doConnect(Unknown Source) at java.net.AbstractPlainSocketImpl.connectToAddress(未知来源)在 java.net.AbstractPlainSocketImpl.connect(Unknown Source) at java.net.PlainSocketImpl.connect(Unknown Source) at java.net.SocksSocketImpl.connect(Unknown Source) 在 java.net.Socket.connect(Unknown Source) 在 java.net.Socket.connect(Unknown Source) 在 java.net.Socket.(未知来源)在 java.net.Socket.(Unknown Source) at Client.main(Client.java:18)
【问题讨论】:
-
这个异常发生在哪一边??
-
@VishalK 客户端
-
我还有一个问题,如何从服务器向客户端发送一些消息?
标签: java client-server