如何使用Java网络和MAMP修复绑定错误 客户端
我在我的电脑上使用这个。我使用的是MAMP,它已安装,一切似乎都很好,但如何使用Java网络和MAMP修复绑定错误 客户端,java,networking,mamp,Java,Networking,Mamp,我在我的电脑上使用这个。我使用的是MAMP,它已安装,一切似乎都很好,但 package com.data.jdbc; import java.io.IOException; import java.io.PrintStream; import java.net.Socket; import java.net.UnknownHostException; import java.util.Scanner; public class ClientDemo { public static
package com.data.jdbc;
import java.io.IOException;
import java.io.PrintStream;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Scanner;
public class ClientDemo {
public static void main(String[] args) throws UnknownHostException, IOException {
Socket s = new Socket("127.0.0.1", 8888);
Scanner is = new Scanner(s.getInputStream()); //receive data from server
System.out.println("Enter the string");
Scanner scan = new Scanner(System.in);
String name = scan.next();
PrintStream p = new PrintStream(s.getOutputStream());
p.println(name);
String temp=is.next();
System.out.println(temp);
// TODO Auto-generated method stub
}
}
package com.data.jdbc;
import java.io.IOException;
import java.io.PrintStream;
import java.net.*;
import java.util.Scanner;
public class ServerDemo {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
ServerSocket sc1 = new ServerSocket(8888);
Socket s11 = sc1.accept();
Scanner scan1 = new Scanner(s11.getInputStream());
String name1 = scan1.next();
String temp1= name1 + "Poudel";
PrintStream p1 = new PrintStream(s11.getOutputStream());
p1.println(temp1);
}
}
服务器端
我在我的电脑上使用这个,安装了MAMP,一切看起来都很好,但是
package com.data.jdbc;
import java.io.IOException;
import java.io.PrintStream;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Scanner;
public class ClientDemo {
public static void main(String[] args) throws UnknownHostException, IOException {
Socket s = new Socket("127.0.0.1", 8888);
Scanner is = new Scanner(s.getInputStream()); //receive data from server
System.out.println("Enter the string");
Scanner scan = new Scanner(System.in);
String name = scan.next();
PrintStream p = new PrintStream(s.getOutputStream());
p.println(name);
String temp=is.next();
System.out.println(temp);
// TODO Auto-generated method stub
}
}
package com.data.jdbc;
import java.io.IOException;
import java.io.PrintStream;
import java.net.*;
import java.util.Scanner;
public class ServerDemo {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
ServerSocket sc1 = new ServerSocket(8888);
Socket s11 = sc1.accept();
Scanner scan1 = new Scanner(s11.getInputStream());
String name1 = scan1.next();
String temp1= name1 + "Poudel";
PrintStream p1 = new PrintStream(s11.getOutputStream());
p1.println(temp1);
}
}
错误
我得到一个绑定错误,如下所示:
Exception in thread "main" java.net.BindException: Address already in use (Bind failed)
at java.net.PlainSocketImpl.socketBind(Native Method)
at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:387)
at java.net.ServerSocket.bind(ServerSocket.java:375)
at java.net.ServerSocket.<init>(ServerSocket.java:237)
at java.net.ServerSocket.<init>(ServerSocket.java:128)
at com.data.jdbc.ServerDemo.main(ServerDemo.java:18)
线程“main”java.net.BindException中的异常:地址已在使用中(绑定失败)
位于java.net.PlainSocketImpl.socketBind(本机方法)
位于java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:387)
位于java.net.ServerSocket.bind(ServerSocket.java:375)
位于java.net.ServerSocket.(ServerSocket.java:237)
位于java.net.ServerSocket。(ServerSocket.java:128)
位于com.data.jdbc.ServerDemo.main(ServerDemo.java:18)
上述问题的原因可能是什么?端口8888已被另一个进程使用。使用其他端口。服务器端口8888已被其他程序使用。在windows上,您可以使用“netstat-ano”获取套接字列表,包括进程ID。您需要检查端口8888以及哪个进程使用此端口。从获取TCPView并查看使用8888的内容。然后您必须关闭该应用程序或更改您正在使用的端口。很可能您的程序的另一个实例正在使用8888,该实例仍在运行,这要感谢Raviii1和Konrad。问题解决了