gpt4 book ai didi

java - 如何运行一个允许传入连接的简单套接字服务器?

转载 作者:行者123 更新时间:2023-12-02 05:59:13 24 4
gpt4 key购买 nike

我正在尝试用 JAVA 构建一个非常简单的套接字服务器,我的 Flash 应用程序可以监听它。 I am using this tutorial 。一切似乎都正常 - JAVA 代码已编译并且服务器正在运行。

我的问题是:外部应用程序如何仅使用 IP 地址和端口号向该服务器发送消息?我的目标是 Flash 可以监听外部应用程序发送的套接字消息。

Java 代码:

import java.io.*; 
import java.net.*;

class SimpleServer {
private static SimpleServer server;
ServerSocket socket;
Socket incoming;
BufferedReader readerIn;
PrintStream printOut;

public static void main(String[] args) {
int port = 8080;

try {
port = Integer.parseInt(args[0]);
} catch (ArrayIndexOutOfBoundsException e) {
// Catch exception and keep going.
}

server = new SimpleServer(port);
}


private SimpleServer(int port) {
System.out.println(">> Starting SimpleServer");

try {
socket = new ServerSocket(port);
incoming = socket.accept();
readerIn = new BufferedReader(
new InputStreamReader(
incoming.getInputStream()));
printOut = new PrintStream(incoming.getOutputStream());

printOut.println("Enter EXIT to exit.\r");
out("Enter EXIT to exit.\r");
boolean done = false;

while (!done) {
String str = readerIn.readLine();

if (str == null) {
done = true;
} else {
out("Echo: " + str + "\r");

if(str.trim().equals("EXIT"))
done = true;
}

incoming.close();
}
} catch (Exception e) {
System.out.println(e);
}
}

private void out(String str) {
printOut.println(str);
System.out.println(str);
}
}

最佳答案

也许我没有正确理解你的问题描述,但是如果你用Java创建服务器,它会监听它的端口而不是你的Flash应用程序。如果您希望 Flash 应用程序等待来自其他应用程序的消息,则它必须具有服务器角色并以与此 Java 服务器相同的方式监听 TCP 端口。

您可以通过提供主机名或 IP 地址和端口作为参数,通过 telnet 程序(在所有操作系统中可用)轻松连接并测试给定的 Java 服务器:

telnet 127.0.0.1 8080

任何其他应用程序都可以以类似的方式进行连接,仅使用主机名/IP 地址和端口。例如,在 Java 中,您可以创建客户端套接字:

Socket clientSocket = new Socket("localhost", 8080);
DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream());
BufferedReader inFromServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));

关于java - 如何运行一个允许传入连接的简单套接字服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22811237/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com