gpt4 book ai didi

Java Socket 文件和目录列表名称显示在客户端

转载 作者:行者123 更新时间:2023-12-01 13:41:18 26 4
gpt4 key购买 nike

我想为客户端和服务器建立套接字连接以显示文件列表,但下面的代码没有从服务器获取任何输入或向客户端提供输出。
请帮忙。

服务器代码:

 package javaapplicationthread;

import java.net.ServerSocket;
import java.net.Socket;
import java.io.BufferedReader;
import java.io.File;
import java.io.InputStreamReader;
import java.io.IOException;
import java.io.PrintWriter;



public class zs {
public static int reads,red;
public static void main(String[] args)
{
int flg=0;

try{while(true){
ServerSocket serverSocket = new ServerSocket(1312);
Socket clientSocket = serverSocket.accept();

BufferedReader bufferedReader;
PrintWriter outk=new PrintWriter(clientSocket.getOutputStream(),true);

bufferedReader = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));


traverse(inputFolder, "");

}
}
catch (IOException ex) {
System.out.println("my exception is"+ex);
} }

最佳答案

我看到的第一件事是您在 while 循环中创建服务器套接字。在 while 循环的第二次运行中,您最终将得到“java.net.BindException:地址已在使用中:JVM_Bind”。

服务器代码如下:

try{
ServerSocket serverSocket = new ServerSocket(1312);
while(true) {
serverSocket.accept();

//Client connected
Socket clientSocket = serverSocket.accept();

//Socket read-write
//Also it is better to delegate this client session to another thread
}
}catch(IOException e) {
e.printStackTrace();
}

其次,您的服务器代码读取字符串行并将“abc”发送到客户端,然后调用“traverse”方法。但“traverse”方法似乎没有向客户端套接字发送任何内容。

客户端也会在“redd = b.readLine();”中被阻止行,因为服务器只发送“abc”并且不附加新行('\n 或\r)。

关于Java Socket 文件和目录列表名称显示在客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20749511/

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