【问题标题】:Socket Client connection套接字客户端连接
【发布时间】:2015-02-08 20:10:51
【问题描述】:

我正在尝试学习如何在 java 中使用套接字 我从Tutorials point 输入了示例,但我无法让它工作(套接字客户端示例)。 我所做的唯一更改是,我没有从传入的args 获取端口和主机名,而是对端口进行硬编码并获取本地主机。我的代码如下

import java.net.*;
import java.io.*;

public class GreetClient
{
   public static void main(String [] args)
   {
      InetAddress lHost=null;
      try { lHost = InetAddress.getLocalHost(); }
      catch(Exception e) { System.out.println("Local Host Error");}
      int port = 1234;
      try
      {
         System.out.println("Connecting to " + lHost + " on port " + port);
         Socket client = new Socket(lHost, port);
         System.out.println("Just connected to " + client.getRemoteSocketAddress());
         OutputStream outToServer = client.getOutputStream();
         DataOutputStream out = new DataOutputStream(outToServer);

         out.writeUTF("Hello from " + client.getLocalSocketAddress());
         InputStream inFromServer = client.getInputStream();
         DataInputStream in = new DataInputStream(inFromServer);
         System.out.println("Server says " + in.readUTF());
         client.close();
      }catch(IOException e)
      {
         e.printStackTrace();
      }
   }
}

我得到的错误是:

Connecting to Bridgets_laptop/192.168.56.1 on port 1234
java.net.ConnectException: Connection refused: connect
    at java.net.DualStackPlainSocketImpl.connect0(Native Method)
    at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
    at java.net.Socket.connect(Socket.java:579)
    at java.net.Socket.connect(Socket.java:528)
    at java.net.Socket.<init>(Socket.java:425)
    at java.net.Socket.<init>(Socket.java:241)
    at GreetClient.main(GreetClient.java:27)

任何想法我哪里出错了?

【问题讨论】:

    标签: sockets networking client


    【解决方案1】:

    “连接被拒绝”部分听起来像是您有防火墙阻止您自己的应用程序访问 Socket1234,或者您尚未打开 ServerSocket 1234 进行连接。

    你能连接到ServerSocket吗

    telnet 127.0.0.1 1234
    

    如果您使用 Windows?

    【讨论】:

    • 谢谢我还没有打开ServerSocket。我现在可以访问它了。
    猜你喜欢
    • 2021-12-22
    • 1970-01-01
    • 2021-02-03
    • 2013-04-21
    • 2017-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多