gpt4 book ai didi

java - 是否可以在同一台机器上运行套接字服务器和套接字客户端?

转载 作者:太空狗 更新时间:2023-10-29 22:33:44 28 4
gpt4 key购买 nike

在 java 中可以创建套接字服务器和套接字客户端,是否可以在同一台机器上同时运行套接字服务器实例和从套接字服务器接收数据的套接字/服务器客户端?

例如套接字服务器在端口 60010 上运行并且套接字客户端在通过套接字连接到该端口的同一台机器上运行,或者我需要通过一台新机器将其添加到我的网络吗?如果它有一个唯一的IP地址和端口号运行在TCP/IP层。

最佳答案

这是一个可以帮助您入门的简单可运行示例。它启动两个线程,一个使用 ServerSocket,另一个创建 Socket 连接。一个连续发送字符串,另一个打印它们。

您应该能够按原样运行此类。

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.UnknownHostException;

public class SocketTest {
public static void main(String[] args) throws IOException {

startServer();
startSender();
}

public static void startSender() {
(new Thread() {
@Override
public void run() {
try {
Socket s = new Socket("localhost", 60010);
BufferedWriter out = new BufferedWriter(
new OutputStreamWriter(s.getOutputStream()));

while (true) {
out.write("Hello World!");
out.newLine();
out.flush();

Thread.sleep(200);
}

} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}).start();
}

public static void startServer() {
(new Thread() {
@Override
public void run() {
ServerSocket ss;
try {
ss = new ServerSocket(60010);

Socket s = ss.accept();

BufferedReader in = new BufferedReader(
new InputStreamReader(s.getInputStream()));
String line = null;
while ((line = in.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}).start();
}
}

关于java - 是否可以在同一台机器上运行套接字服务器和套接字客户端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10069059/

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