java中的服务器客户端聊天室程序显示已经在使用的地址

时间:2018-04-19 08:19:22

标签: java networking server client chat

我是网络新手,我正在尝试编写服务器客户端程序。不过,我一直在使用Address已经在使用并且无法聊天。我的一个朋友在他的电脑上运行它,它正在工作。有人可以向我解释为什么我一直收到这个错误吗?

这是服务器类:

import java.net.*;
import java.io.*;
class server
{
public static void main(String []args)
{
    try
    {
        ServerSocket serv = new ServerSocket(8001);
        System.out.println("Server up and listening:");
        Socket S = serv.accept();
        InetAddress obj = S.getInetAddress();
        System.out.println("Request coming from:");
        BufferedReader br = new BufferedReader(new InputStreamReader(S.getInputStream()));
        String msg = br.readLine();
        System.out.println("Message recieved:"+msg);
        br.close();
        serv.close();
    }
    catch(Exception e)
    {
        System.out.println(e.getMessage());
    }
}}

这是客户端类:

import java.net.*;
 import java.io.*;
 import java.util.*;
  class client`{
public static void main(String [] args)
{
    Socket s = null;
    BufferedOutputStream bout = null;
    InetAddress obj = null;


    try {

        obj = InetAddress.getByName(args[0]);  
        s = new Socket(obj, 8001);
        String str = new Scanner(System.in).nextLine();
        byte[] arr = str.getBytes();
        bout = new BufferedOutputStream(s.getOutputStream());
        bout.write(arr);
        bout.flush();
        bout.close();
        s.close();
    }
    catch(Exception e)
    {
        System.out.println(e.getMessage());
    }
} }

感谢您提供的任何帮助!

2 个答案:

答案 0 :(得分:0)

使用以下命令确定您运行服务器程序的计算机上是否有任何打开的端口

netstat -nao | find "8001"

答案 1 :(得分:0)

您只需将8001更改为其他值即可。看起来它正被另一个程序使用。取决于您的操作系统,有很多方法可以了解哪些端口被占用。