※ ChatGPTを利用し、要約された質問です(原文:Javaの簡易クライアント)
Javaの簡易クライアントでメール閲覧ができずエラーが発生する
メールの閲覧ができるプログラムを作成してコンパイルして実行はできるのですが閲覧ができずエラーが出てしまいます。
正しいソースコードを教えてください。プログラムに詳しい方宜しくお願いします。
画像は実行結果です。
import java.io.*;
import java.net.*;
public class mail2 {
public static void main(String args[]) throws IOException {
String server,user,pass,str,num;
int port = 110;
StringBuffer sb = new StringBuffer("");
Socket sock;
BufferedReader sockin;
BufferedWriter sockout;
System.out.println("サーバーを入力");
BufferedReader serverin = new BufferedReader(new InputStreamReader(System.in));
server = serverin.readLine();
System.out.println("ユーザーを入力");
BufferedReader userin = new BufferedReader(new InputStreamReader(System.in));
user = userin.readLine();
System.out.println("パスワードを入力");
BufferedReader passin = new BufferedReader(new InputStreamReader(System.in));
pass = passin.readLine();
try {
sock = new Socket(server, port);
sockin = new BufferedReader(new InputStreamReader(sock.getInputStream()));
sockout = new BufferedWriter(new OutputStreamWriter(sock.getOutputStream()));
sockout.write("USER " + user + "\r\n");
sockout.write("PASS " + pass + "\r\n");
sockout.write("LIST\r\n");
sockout.write("QUIT\r\n");
sockout.flush();
while ((str = sockin.readLine()) != null) {
System.out.println(str);
}
sockout.close();
sockin.close();
sock.close();
} catch (Exception ex) {
ex.printStackTrace();
}
System.out.println("どのメールを見ますか?");
BufferedReader numin = new BufferedReader(new InputStreamReader(System.in));
num = numin.readLine();
try {
sock = new Socket (server, port);
sockin = new BufferedReader(new InputStreamReader(sock.getInputStream()));
sockout = new BufferedWriter(new OutputStreamWriter(sock.getOutputStream()));
sockout.write("USER " + user + "\r\n");
sockout.write("PASS " + pass + "\r\n");
sockout.write("RETR " +num+"\r\n");
sockout.write("QUIT\r\n");
sockout.flush();
while ((str = sockin.readLine()) != null) {
System.out.println(str);
}
sockout.close();
sockin.close();
sock.close();
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
補足
ご回答ありがとうございます。いくつか質問してしまうのですが int port = 110; の部分がいけないのでしょうか? 後、LISTやRETRでエラーが返ってきてますが sockout.write の部分が間違っているのですか?お手数かけますが宜しくお願いします