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

标签 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)

最佳答案

127.0.0.1 是本地主机。可以通过修改hosts文件来改变。但对于您的情况,我们可以做一件事,我们可以检查是否存在代码问题或网络问题。

通过使用 Windows cmd 提示符

    telnet 127.0.0.1 3021 // 3021 is the port no.

如果出现黑屏,则表示网络连接已建立,如果出现异常,则表示存在网络问题。可能是防火墙阻止了请求。

关于java - 创建一个客户端以使用 java 发送内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29890136/

相关文章:

C# 异步服务器/客户端架构

Erlang - Riak 客户端

java - JAVA 上的服务器-客户端-聊天应用程序示例

Java:循环的 Thread.sleep() 总是在同一个物理核心上运行吗?

java - 如何重用 gradle-wrapper?

java - if(listStr.size == 0){ 与 if(listStr.isEmpty()){

javascript - 我是否可以使用 WebSockets 连接到 irc、icq、sip 等服务,前提是我在 JavaScript 中实现了这些协议(protocol)?

java - 关闭 JDialog 时没有 WindowEvent

java - mvc :annotation-driven in dispatcher servlet configuration 内的冲突

node.js - 获取 Kue 作业的结果并通过开放连接将其推送给客户端