孔雀南飞梦 2021-07-20 13:13 采纳率: 66.7%
浏览 57
已采纳

关于简单的java tcp协议连接不上

这个程序我试过在自己的电脑上是可以连接的,但是我吧服务端发给别人运行,我都是让别人先运行服务端然后才启动客户端的,但是两台电脑之间就是连接不上,这是为什么?
具体代码如下


```java
class Client{
    public static void main(String[] args) throws IOException {
        InetAddress inetAddress=InetAddress.getByName("fe80::ac2e:7f79:cbf5:c18f%17");//本机与给本机建立链接
        //指定要传输地端口号
        Socket socket=new Socket(inetAddress, 8899);
        //对外进行数据传输
        OutputStream outputStream = socket.getOutputStream();
        outputStream.write("能看见嘛,看见的话给我回复一下".getBytes());
        socket.shutdownOutput();//关闭传输
        //接收服务端信息
        InputStream inputStream = socket.getInputStream();
        InputStreamReader inputStreamReader=new InputStreamReader(inputStream);
        BufferedReader bufferedReader=new BufferedReader(inputStreamReader);
        String line;
        while ((line=bufferedReader.readLine())!=null){
            System.out.println(line);
        }
        //关闭资源
        outputStream.close();
        socket.close();
    }
}
class Service{
    public static void main(String[] args) throws IOException {
        System.out.println("服务端开启,等待客户端连接......");
        ServerSocket socket=new ServerSocket(8899);//指定当前端口号
        Socket accept = socket.accept();//表示可以接收客户端
        System.out.println("与"+socket.getInetAddress().getHostAddress()+"用户连接成功!");
        InputStream inputStream = accept.getInputStream();
        InputStreamReader reader=new InputStreamReader(inputStream);//转换流
        BufferedReader bufferedReader=new BufferedReader(reader);//字符流
        String line;
        while ((line=bufferedReader.readLine())!=null){
            System.out.println(line);
        }
        //给客户端回复
        OutputStream outputStream = accept.getOutputStream();
        BufferedOutputStream bufferedOutputStream=new BufferedOutputStream(outputStream);
        bufferedOutputStream.write("客户端你好,信息已接收到!".getBytes());
        //关闭流
        bufferedOutputStream.flush();
        bufferedOutputStream.close();
        bufferedReader.close();


    }
}

```

  • 写回答

2条回答 默认 最新

  • CSDN专家-微编程 2021-07-20 13:28
    关注

    1.如果你花钱买的云服务器,可以在xshell程序里使用SSH进行连接,一般也不会一个电脑可以连上,一个电脑连不上
    2.如果你使用的本地VM软件运行的虚拟机,这个情况就有很多了,首先别人的电脑和你的电脑不在同一区域使用同一个局域网,根本不可能访问到,只有一个解决办法,你花钱买云服务器从新部署,关闭防火墙,或者设置规则允许某个电脑ip访问
    如果你们使用同一个局域网,那么看看防火墙有没有关闭或者配置一下规则,允许他的电脑ip可以访问

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已采纳回答 7月20日
  • 创建了问题 7月20日

悬赏问题

  • ¥15 PointNet++的onnx模型只能使用一次
  • ¥20 西南科技大学数字信号处理
  • ¥15 有两个非常“自以为是”烦人的问题急期待大家解决!
  • ¥30 STM32 INMP441无法读取数据
  • ¥15 R语言绘制密度图,一个密度曲线内fill不同颜色如何实现
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧,别用大模型回答,大模型的答案没啥用
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。