构造函数 ServerSocket(int) 未定义
The constructor ServerSocket(int) is undefined
我是 JAVA 的新手,基本上我用 C++ 编写代码。最近我需要在JAVA套接字编程方面做点什么。但是我在 ServerSocket(..) 中遇到了一个奇怪的错误。我正在尝试在特定端口创建服务器套接字。为此,我的代码如下所示。
import java.net.*;
import java.io.*;
import java.util.*;
public class ServerSocket {
static ServerSocket socket1;
protected final static int port = 19999;
static Socket connection;
public static void main(String[] args) {
try
{
socket1 = new ServerSocket(port);
}
catch (IOException e) {}
}
}
但是我遇到了编译错误 "The constructor ServerSocket(int) is undefined"。谢谢
我先推荐一个 java 教程。只是为了了解基本的区别。
简而言之:
在 Java 中,所有内容都必须在 class 中。您定义了一个名为 'main' 的静态方法。这是您申请的开始。
这是您的示例(文件名:DemoClass.java):
import java.net.*;
import java.io.*;
public class DemoClass {
private static ServerSocket socket1;
private static final int port = 19999;
private static void handleConnection(Socket socket) throws IOException {
OutputStream out = socket.getOutputStream();
// Say hello
out.write("Hello World\n".getBytes());
out.flush();
// Close the connection
out.close();
socket.close();
}
// Use this exact method signature!
public static void main(String[] args) {
try {
socket1 = new ServerSocket(port);
// Here is some example what you could do
Socket connection = socket1.accept();
handleConnection(connection);
} catch(IOException e) {
// What should be done if this fails? E.g. port already in use
e.printStackTrace();
}
}
}
但我真的建议 Java 和 Java 套接字教程。
您好!
请参阅我对您的原始问题的第二条评论:
Also, do you have your own class named ServerSocket?
您已将 class ServerSocket 命名为 Java 编译器正在寻找此 class 中的 构造函数,一个需要一个整数。重命名 class 这样就不会发生名称冲突,现在可以使用 Java 核心 ServerSocket class.
服务器程序在 try-with-resources 语句中创建 ServerSocket 对象:
import java.io.*;
import java.net.*;
class Test{
private static ServerSocket socket1;
private final static int port = 19999;
public static void main (String [] args){
try{
socket1 = new ServerSocket(port);
}
catch(IOException e){
e.printStackTrace();
}
}
}
ServerSocket 的 constructor 如果无法监听指定端口,将抛出异常。例如,该端口已被使用。
我是 JAVA 的新手,基本上我用 C++ 编写代码。最近我需要在JAVA套接字编程方面做点什么。但是我在 ServerSocket(..) 中遇到了一个奇怪的错误。我正在尝试在特定端口创建服务器套接字。为此,我的代码如下所示。
import java.net.*;
import java.io.*;
import java.util.*;
public class ServerSocket {
static ServerSocket socket1;
protected final static int port = 19999;
static Socket connection;
public static void main(String[] args) {
try
{
socket1 = new ServerSocket(port);
}
catch (IOException e) {}
}
}
但是我遇到了编译错误 "The constructor ServerSocket(int) is undefined"。谢谢
我先推荐一个 java 教程。只是为了了解基本的区别。
简而言之:
在 Java 中,所有内容都必须在 class 中。您定义了一个名为 'main' 的静态方法。这是您申请的开始。
这是您的示例(文件名:DemoClass.java):
import java.net.*;
import java.io.*;
public class DemoClass {
private static ServerSocket socket1;
private static final int port = 19999;
private static void handleConnection(Socket socket) throws IOException {
OutputStream out = socket.getOutputStream();
// Say hello
out.write("Hello World\n".getBytes());
out.flush();
// Close the connection
out.close();
socket.close();
}
// Use this exact method signature!
public static void main(String[] args) {
try {
socket1 = new ServerSocket(port);
// Here is some example what you could do
Socket connection = socket1.accept();
handleConnection(connection);
} catch(IOException e) {
// What should be done if this fails? E.g. port already in use
e.printStackTrace();
}
}
}
但我真的建议 Java 和 Java 套接字教程。
您好!
请参阅我对您的原始问题的第二条评论:
Also, do you have your own class named ServerSocket?
您已将 class ServerSocket 命名为 Java 编译器正在寻找此 class 中的 构造函数,一个需要一个整数。重命名 class 这样就不会发生名称冲突,现在可以使用 Java 核心 ServerSocket class.
服务器程序在 try-with-resources 语句中创建 ServerSocket 对象:
import java.io.*;
import java.net.*;
class Test{
private static ServerSocket socket1;
private final static int port = 19999;
public static void main (String [] args){
try{
socket1 = new ServerSocket(port);
}
catch(IOException e){
e.printStackTrace();
}
}
}
ServerSocket 的 constructor 如果无法监听指定端口,将抛出异常。例如,该端口已被使用。