java - 套接字和 Java 聊天

标签 java sockets

我是 Java 的新手,正在尝试学习如何使用套接字。

我正在尝试编写一个简单的文本信使,服务器 - 客户端,但我不知道如何让服务器始终监听客户端的流:

这是服务器代码,现在它只管理 1 个传入连接,当客户端连接时,服务器向它发送消息:

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

public class SocketServer {

private InetAddress ServerAddress;
private int ServerPort;
private int ServerQueue;
private ServerSocket Server;

public SocketServer(String ServerAddress, int ServerPort, int ServerQueue)
{
    try
    {
        this.ServerAddress = InetAddress.getByName(ServerAddress);
    }
    catch (UnknownHostException uhe)
    {
        uhe.printStackTrace();
    }
    this.ServerPort = ServerPort;
}

public boolean ServerCreate()
{
    try
    {
        Server = new ServerSocket(this.ServerPort, 10, this.ServerAddress);
        System.out.println("System Message: Server started!");
        return true;
    }
    catch(IOException ioe)
    {
        ioe.printStackTrace();
        System.out.println("System Message: Can't start server!");
        return false;
    }
}

public void ServerStartListening()
{
    int exit = -1;
    while(exit < 1)
    {
        try 
        {
            Socket client = this.Server.accept();
            OutputStream clientout = client.getOutputStream();
            BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(clientout));
            bw.write("Welcome: "+client.toString());
            bw.close();
        } 
        catch (IOException ex) 
        {
            ex.printStackTrace();
        }  
    }
}
}

抱歉我的英语不好。

最佳答案

您需要实现多线程才能监听多个传入请求。引用这个link : oracle 的一个非常好的多线程服务器示例

关于java - 套接字和 Java 聊天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13387795/

相关文章:

java - 如果服务器崩溃,我应该如何处理?

java - 从生物识别指纹考勤设备中检索数据

java - 在带有 Maven 的 Java 项目中使用 AsyncHttpClient

java - 通用数据类型转换方法

java - 无法使用 Tomcat 设置 servlet cookie

java - 在Java中连接多行SQL语句的有效方法?

java - java中原始类型的泛型方法

java - 套接字输入流问题。显示为空

java - socket -V- 休息性能

c - 在 C 中非常快速地发送多个包