簡體   English   中英

具有ReadLine異常的Java處理中的套接字編程

[英]Socket Programming in Java Handling with ReadLine Exception

我是套接字編程的新手,正在嘗試找出異常處理問題。 我無法從java中的客戶端向服務器發送字符串消息,因為在運行程序時,代碼的readLine部分給出了異常錯誤。 我嘗試在服務器類中拋出Exception,並且在運行服務器程序時沒有出現紅色帶下划線的代碼錯誤,但是當我在服務器程序之后運行客戶端程序時,在代碼的br.readLine部分中出現了異常錯誤。 可能是什么原因?

我的客戶代碼:

package com.soc;
import java.io.OutputStreamWriter; 
import java.io.PrintWriter;
import java.net.Socket;

public class socClient {

public static void main(String[] args) throws Exception{

    String ip = "localhost";
    int port = 9999;// 0-1023 to 65535
    Socket s = new Socket(ip,port);

    String str = "Hello World";

    OutputStreamWriter os = newOutputStreamWriter(s.getOutputStream());

    PrintWriter out = new PrintWriter(os);
    os.write(str);
    os.flush(); 
}

}

我的服務器代碼:

package com.soc;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;

public class socServer {

public static void main(String[] args) throws Exception{

    System.out.println("Server is started");
    ServerSocket ss = new ServerSocket(9999);

    System.out.println("Server is waiting for client request");
    Socket s = ss.accept();

    System.out.println("Client connected");


    BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
    String str = null;
    str = br.readLine();

    System.out.println("Client Data: " +str);
}

}

原因是客戶端永遠不會關閉套接字,這會導致在某些操作系統上重置連接。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM