小编Sch*_*fty的帖子

读/写java服务器套接字的最佳实践

如何设计一个在单个插槽上运行的读写循环(支持并行读写操作)?我必须使用多个线程吗?我的(java)解决方案有什么用吗?睡眠命令怎么样?你如何在这样的循环中使用它?

我正在尝试使用2个线程:

public void run() {
    InputStream           clientInput;
    ByteArrayOutputStream byteBuffer;
    BufferedInputStream   bufferedInputStream;
    byte[]                data;
    String                dataString;
    int                   lastByte;

    try {
        clientInput         = clientSocket.getInputStream();
        byteBuffer          = new ByteArrayOutputStream();
        bufferedInputStream = new BufferedInputStream(clientInput);

        while(isRunning) {  

            while ((lastByte = bufferedInputStream.read()) > 0) {
                byteBuffer.write(lastByte);
            }
                data       = byteBuffer.toByteArray();  
                dataString = new String(data);
                byteBuffer.reset();     
        }   

    } catch (IOException e) {
        e.printStackTrace();
    }
}
Run Code Online (Sandbox Code Playgroud)

public void run() {
    OutputStream clientOutput;
    byte[]       data;
    String       dataString;

    try {
        clientOutput = clientSocket.getOutputStream();

        while(isOpen) { 

            if(!commandQueue.isEmpty()) { …
Run Code Online (Sandbox Code Playgroud)

java sockets networking

7
推荐指数
1
解决办法
1万
查看次数

带有\ 0的字符串在Java中表现得很奇怪

为什么与b不同?

    String a = "BuildGUID10035\0528\0440";
    String b = "BuildGUID10035" + '\0' + 528  + '\0' + 440;

    System.out.println("A: " + a);
    System.out.println("B: " + b);
    System.out.println(a.equals(b));
Run Code Online (Sandbox Code Playgroud)

java string null-terminated

2
推荐指数
1
解决办法
2930
查看次数

标签 统计

java ×2

networking ×1

null-terminated ×1

sockets ×1

string ×1