Java网络IO服务器设置

时间:2013-06-14 19:11:39

标签: java networking io inputstream bufferedreader

我想玩Java网络I / O流和API。我的网络上有一台笔记本电脑和一台PC(我知道每台设备的IP),它通过Netgear DG834路由器连接。

在使用Java网络I / O流时,如何将笔记本电脑配置为“服务器”,将我的电脑配置为“客户端”。

谢谢!

3 个答案:

答案 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上执行此操作。