나는 8080 포트를 사용하는 웹 사이트에 연결하고 서버의 첫 번째 입력을 인쇄하는 클라이언트의 간단한 예제를 작성하려고합니다. 하지만 서버에 연결할 수는 없습니다. Wireshark를 사용하여 TCP 헤더를 트러 킹하면 서버가 응답하지 않는다는 것을 깨달았습니다. 이미 방화벽, 바이러스 백신을 끄고 라우터에서 전달 포트를 설정했지만 여전히 서버에 연결할 수 없습니다. 문제의 원인이 될 수있는 어떤Java 소켓 프로그래밍/차단 된 포트
import java.io.IOException;
import java.io.InputStream;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.net.UnknownHostException;
public class ProtocoloX {
//private byte[] bytes = new byte[1024];
private byte[] bytes = new byte[]{(byte) 0xC6, 0x57, 0x54, (byte) 0x95, 0x5E, (byte) 0x9E, 0x6B, (byte) 0xC6, 0x55, 0x17, 0x55,0x52, (byte) 0x9E, 0x21};
private Socket cliente;
private final String HOST = "stackoverflow.com";
private final int PORT = 8080;
public boolean connect(){
this.cliente = new Socket();
System.out.println("-- Trying to connect: "+HOST+":"+PORT);
InetSocketAddress socketAddress = new InetSocketAddress(HOST, PORT);
try {
this.cliente.connect(socketAddress, 10000000);
} catch (IOException e) {
System.out.println(e);
System.out.println("-- CONNECTION PROBLEM ");
return false;
}
System.out.println("-- Connection successful");
return true;
}
private void receive(){
InputStream stream = null;
System.out.println("-- Reading data...");
try {
stream = this.cliente.getInputStream();
try {
int count = stream.read(this.bytes);
System.out.println("count:"+count);
System.out.println("bytes:"+this.bytes);
} catch (IOException e) {
System.out.println("-- DATA READING PROBLEM");
e.printStackTrace();
}
} catch (IOException e) {
System.out.println("-- DATA READING PROBLEM");
e.printStackTrace();
}
System.out.println("-- Data read successful");
}
public static void main(String[] args) throws UnknownHostException, IOException {
ProtocoloX protocolo = new ProtocoloX();
if(protocolo.connect()){
protocolo.receive();
}
}
}
: 여기
내 코드? 감사합니다 : D
'stackoverflow.com'은 포트 8080에서 수신 대기하지 않습니다. –
HTTP 포트는 80 포트입니다. 8080은 대체 HTTP 포트입니다. – Dampsquid
좋아, 이제는 stackoverflow.com으로 작동하지만 다른 웹 사이트를 시도하면 읽기 타임 아웃 예외. 뭐가 될수 있었는지? –