我的代码
public class MainActivity {
public static void main(String[] args) throws IOException {
//1.创建客户端Socket,指定服务器地址和端口
Socket socket = new Socket("***.***.**.*",8080);
//2.获取输出流,向服务器端发送信息
OutputStream os = socket.getOutputStream();//字节输出流
PrintWriter pw = new PrintWriter(os);//将输出流包装为打印流
//获取客户端的IP地址
InetAddress address = InetAddress.getLocalHost();
String ip = address.getHostAddress();
System.out.println("本地ip:" + ip);
System.out.println("本地端口:" + socket.getLocalPort());
System.out.println("连接服务端ip:"+socket.getInetAddress());
System.out.println("打印服务器端口:"+socket.getPort());
System.out.println("本地地址:"+socket.getLocalAddress());
System.out.println("本地端口:" + socket.getLocalPort());
pw.write("客户端:~" + ip + "~ 接入服务器!!");
pw.flush();
System.out.println();
socket.shutdownOutput();//关闭输出流
socket.close();
}
}
错误原因 : Connection refused: connect。
Exception in thread "main" 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:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at java.net.Socket.connect(Socket.java:538)
at java.net.Socket.<init>(Socket.java:434)
at java.net.Socket.<init>(Socket.java:211)
at cn.hyyj.project.gateway.socket.test1.MainActivity.main(MainActivity.java:11)
这是因为自己提供的IP和端口没有组合不正确。所以会报错。
解决方案:
我们可以使用【win】 + 【r】打开cmd窗口
输入:netstat -na 查看自己电脑的IP地址和端口
ipconfig也可以看自己电脑和连接的IP地址