java - ServerSocket java不读取inputStream?

标签 java jsp client-server

我用java写了一个服务器,这里是代码:

public mainClass() 
{ 
    try 
    { 
        ss = new ServerSocket(8080); 

        while (true) 
        { 
            socket = ss.accept(); 
            System.out.println("It is accept!");

            in = new BufferedReader(new InputStreamReader(socket.getInputStream())); 
            //out = new PrintWriter(socket.getOutputStream(),true); 

            line = in.readLine(); 
            System.out.println("you input is :" + line); 
            //out.close(); 
            in.close(); 
            socket.close();

        } 

    } 
    catch (IOException e) 
    {

    }

我正在使用 iPhone 应用程序作为客户端。 现在我的问题是,当应用程序在iPhone上运行时,服务器没有读取输入流。但是一旦应用程序终止,java程序就会打印出已发送到服务器的字符串。不知道是什么正在发生在这里..抱歉,如果这不是一个好问题..

- (void)viewDidLoad {
[super viewDidLoad];

socket = [[LXSocket alloc]init];

if ([socket connect:@"10.211.55.2" port:8080]) {

    NSLog(@"socket has been created");
}
else {
    NSLog(@"socket couldn't be created created");
}

@try {

[socket sendString:@"Hi This is a second test"];
}

@catch (NSException * e) {
NSLog(@"Unable to send data");
}


    [super viewDidLoad];

}

谢谢, TC

最佳答案

根据我自己的经验,readLine不是一个好主意,特别是在使用不同的语言和平台时,更好的方法是使用InputStreamReader及其read(char[] buff)方法,并双方就每次发送的长度达成一致。

再说一次,我没有提到这一点,只是我的经验。

此外,查看您的代码,您发送一个不带换行符的字符串: [socket sendString:@"Hi This is a secondary test"]; 也许添加 \n 最后会为你解决。

关于java - ServerSocket java不读取inputStream?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6975410/

相关文章:

java - 从已经打开的 CMD 中读取 - java

java - java中如何获取客户端socket程序中的客户端端口和IP地址

Node.js UDP 客户端处理来自 udp 服务器的响应

java - 如何将字符串中的char和num分开并打印char重复num次

java - 将 JScrollPane 组件添加到 JTable 列

jsp - Tomcat JSP 页面未编译(java.io.IOException : tmpFile. renameTo(classFile) 失败)

java - 如何使用 Micronaut View 发送回参数并设置本地存储?

jsp - 检查数据库值,当用户与 session 没有交互时

java - android中的客户端服务器

java - 微光动画在加载 RecyclerView 时不会停止