我想玩Java网络I / O流和API。我的网络上有一台笔记本电脑和一台PC(我知道每台设备的IP),它通过Netgear DG834路由器连接。
在使用Java网络I / O流时,如何将笔记本电脑配置为“服务器”,将我的电脑配置为“客户端”。
谢谢!
答案 0 :(得分:1)
Java网络的很大一部分是使用套接字处理的。服务器是ServerSocket。客户端是一个Socket。他们彼此联系并互相交谈。这就是你应该从Java API读取这些对象开始的地方。
http://docs.oracle.com/javase/7/docs/api/java/net/Socket.html
答案 1 :(得分:1)
您正在寻找使用套接字的简单TCP通信。看一下本教程,您可以开始使用它:http://systembash.com/content/a-simple-java-tcp-server-and-tcp-client/
基本思路是让一个服务器监听某个端口:
String clientSentence;
String capitalizedSentence;
//server listes at port number
ServerSocket welcomeSocket = new ServerSocket(6789);
//server is running forever...
while(true) {
//... and is accepting connections
Socket connectionSocket = welcomeSocket.accept();
//receives string messages ...
BufferedReader inFromClient = new BufferedReader(new InputStreamReader(connectionSocket.getInputStream()));
//... and sends messages
DataOutputStream outToClient = new DataOutputStream(connectionSocket.getOutputStream());
clientSentence = inFromClient.readLine();
System.out.println("Received: " + clientSentence);
capitalizedSentence = clientSentence.toUpperCase() + '\n';
outToClient.writeBytes(capitalizedSentence);
}
客户端应如下所示:
String sentence= "this is a message";
String modifiedSentence;
//client opens a socket
Socket clientSocket = new Socket("localhost", 6789);
DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream());
BufferedReader inFromServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
//writes to the server
outToServer.writeBytes(sentence + '\n');
modifiedSentence = inFromServer.readLine();
System.out.println("FROM SERVER: " + modifiedSentence);
//communication is finished, close the connection
clientSocket.close();
答案 2 :(得分:0)
您不需要2台PC即可完成此操作。您可以通过配置java进程来侦听2个不同的端口,在同一台PC上执行此操作。