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

亚伦

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

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

ulmangt:

这是一个简单的可运行示例,可以帮助您入门。它开始两个线程,一个以a开头,一个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();
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Python:套接字-从同一台PC运行服务器和客户端

套接字服务器和套接字客户端Java-从位于不同计算机上的客户端检测服务器

当服务器和客户端在同一台计算机上时收听广播

如何在同一台计算机上同时运行Synergy客户端和Synergy服务器?

适用于Windows和Linux的同一台计算机上的套接字

如何使Java客户端使用套接字连接到不在我的计算机上的服务器?

客户端只能在同一台计算机上连接到服务器

如何使用内存映射文件在同一台计算机上的服务器和客户端之间进行通信?

同一台计算机上的套接字连接,PHP至C ++并返回

是否可以在Windows的同一台计算机上同时运行FTP代理服务器和FTP服务器?

在linux网络套接字服务器计算机上,当为客户端分配所有网络端口时会发生什么

在Windows Phone 8.1上对多个客户端一台服务器进行套接字编程

通过套接字将多个客户端编程到一台服务器

ZeroMQ - 模拟多个客户端到一台服务器的标准套接字

如何从另一台计算机和网络以C语言访问我的套接字服务器?

OpenVPN客户端和服务器在同一台计算机上-连接客户端时服务器不允许连接

一台计算机中的服务器-客户端

是否可以在客户端和服务器端都关闭Java套接字?

客户端可以使用本地主机连接到同一台计算机上的服务器,但不能使用IP地址或主机名

服务器套接字写入时,是否等待客户端套接字读取?

C#套接字-识别同一台计算机

TCP 套接字客户端和 protobuf 可以与 gRPC 服务器通信吗?

是否可以在另一个网络中寻址服务器/客户端套接字?(C ++)

一个简单的客户端服务器套接字程序的PrintWriter和OutputStream

套接字编程将多个客户端连接到一台服务器并列出它们C

Linux套接字UDP服务器-在2台计算机上的2台服务器之间交换消息

Java TCP 客户端/服务器套接字

客户端js上的套接字服务器?

套接字Java客户端-Python服务器