【发布时间】:2017-12-16 16:22:28
【问题描述】:
我正在尝试使用 Socket 创建聊天。为此,我需要使用一个名为 Socket 的 JAVA 中的类。在我的例子中,它有两个参数:Socket(InetAddress address, int port)。
通过 CMD 中的命令,我知道我的 IP 是什么:ipconfig
但我不知道该在我的端口号中输入什么,因为我不知道在哪里可以找到它。
是否有任何命令、应用程序或其他东西可以获取端口号?
我使用textpad 8 创建JAVA 程序。
有两个程序,发送器 和接收器。
发射器代码
import java.net.*;
import java.io.*;
public class Program
{
public static void main(String[] args)
{
try
{
ServerSocket request = new ServerSocket(12345);
Socket connection = request.accept();
PrintWriter transmitter = new PrintWriter(connection.getOutputStream());
BufferedReader keyboard = new BufferedReader(new InputStreamReader(System.in));
String line = null;
do
{
line = keyboard.readLine();
transmitter.println(line);
transmitter.flush();
}
while (line==null || !line.toUpperCase().equals("END"));
transmitter.close();
connection.close();
request.close();
}
catch(Exception error)
{
System.out.println("Communication error");
}
}
}
接收方代码
import java.net.*;
import java.io.*;
public class Programa
{
public static void main(String[] args) {
try
{
Socket connection = new Socket("123.456.78.9",12345);
BufferedReader keyboard = new BufferedReader(new InputStreamReader(System.in));
BufferedReader receptor = new BufferedReader(new InputStreamReader(conexao.getInputStream()));
String line = null;
do
{
line=receptor.readLine();
System.out.println(line);
}
while(line==null || !line.toUpperCase().equals("END"));
receptor.close();
connection.close();
}
catch(Exception error)
{
System.out.println("Communication error");
System.out.println("Error: " + error);
}
}
}
【问题讨论】:
-
PC 没有端口号,应用程序侦听端口号。你可以选择一个。
-
我需要做什么才能获得这个数量的端口?
-
@Grandtour 端口号由您选择。无论如何,您不应该使用standard port 或另一个进程为already using 的端口。您的客户必须知道地址和端口。
-
哇,我不知道,谢谢。但我已经有一个错误:java.net.ConnectException:连接被拒绝:连接
-
是否有任何服务正在监听您尝试连接的 IP/端口?
标签: java sockets network-programming serversocket