创建一个使用java发送内容的客户端

时间:2015-04-27 07:55:38

标签: java websocket client

我正在尝试创建一个客户端,使用java发送一个名为“Post”的对象。这是我的代码

package net;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;

import base.Post;

public class BlogClient {

	public static final String IP = "127.0.0.1";
	public static final int port = 3021;

	public static String host = "";


	
	public static void main(String[] args){
		try{
			InetAddress addr = InetAddress.getByName("127.0.0.1");
			host = addr.getHostName();
		}catch(UnknownHostException e){
			System.out.println("Shot");
			System.exit(1);
		}
		try(Socket socket =new Socket(host, port);//open a socket	
			PrintWriter out =new PrintWriter(socket.getOutputStream(),true); //send to the server
			BufferedReader in=new BufferedReader(new InputStreamReader(socket.getInputStream()));//echo from the server
			BufferedReader stdIn=new BufferedReader(new InputStreamReader(System.in))//client input	
			){
				String userInput;
				//while( (userInput=stdIn.readLine()) != null ){ 
				while( (userInput=stdIn.readLine()) != null ){
					
					Post p = new Post(userInput);
					out.println(p.toString());
					out.flush();//needed, since the buffered may not be full.
					System.out.println("echo:"+in.readLine());
				}
					
		}catch(UnknownHostException e){		
			System.err.println("Don't know about host"+ IP);			
			System.exit(1);	
		}catch(IOException e){
			System.err.println("Couldnt get I/O for the connection to "+IP);		
			System.exit(1);
		}
	}
}

执行时,控制台说:无法获得连接到127.0.0.1的I / O。

有人可以告诉我为什么会抛出这个例外吗?

(PS:127.0.0.1是我学校的局域网IP)

1 个答案:

答案 0 :(得分:0)

127.0.0.1是localhost。可以通过修改hosts文件来更改它。但在您的情况下,我们可以做一件事,我们可以检查是否存在代码问题或网络问题。

使用Windows cmd提示

    telnet 127.0.0.1 3021 // 3021 is the port no.

如果空白屏幕出现意味着建立网络连接,如果你遇到一些例外,则表示存在网络问题。它可能是阻止请求的防火墙。