0
소켓이 서버로 또는 클라이언트로 메시지를 보내지 않습니다. ... IDK 왜 서버에 연결할 수 있습니까?Java 소켓이 클라이언트 및 서버에 메시지를 보내지 않습니다.
나는 이것을 고치려고했지만 나는 기울이지 않았다. 가능한 모든 방법이 나를 위해 일하지 않았다. 여기에있는 사람들 중 일부가 나를 도울 수 있기를 바랍니다.
읽어 주셔서 감사합니다 .. 여기에 서버입니다 : 두 번 읽는 방법
try {
if(br.readLine() != null){
String test = br.readLine();
System.out.println("Received MSG: " + test);
}
} catch (IOException e) {
e.printStackTrace();
}
주의 사항 :
package test;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Timer;
import java.util.TimerTask;
import ADG.luxemita.LuxEmita;
public class serverHostTest{
static Socket socket;
static DataInputStream in;
static ServerSocket serverSocket;
//static InputStreamReader isr;
static BufferedReader br;
//static BufferedReader stdBr;
//static InputStream is;
static DataOutputStream out;
//static OutputStreamWriter osw;
static BufferedWriter bw;
//static OutputStream os;
static PrintWriter stdOut;
public serverHostTest(String[] args) throws Exception{
int port = Integer.parseInt(args[2]);
LuxEmita.luxLogger.logInfo("Starting Server....");
serverSocket = new ServerSocket(port);
LuxEmita.luxLogger.logInfo("Started Server....");
socket = serverSocket.accept();
LuxEmita.luxLogger.logInfo("Intialized Socket....");
out = new DataOutputStream(socket.getOutputStream());
out.writeUTF("Server Started Successfully!, Some more data...");
//SetupEvent.initInstance();
/*out = new DataOutputStream(socket.getOutputStream());
os = socket.getOutputStream();
osw = new OutputStreamWriter(os);
bw = new BufferedWriter(osw);
stdOut = new PrintWriter(socket.getOutputStream(), true);
in = new DataInputStream(socket.getInputStream());
is = socket.getInputStream();
isr = new InputStreamReader(is);
br = new BufferedReader(isr);
stdBr = new BufferedReader(new InputStreamReader(System.in));
in2 = new BufferedReader(new InputStreamReader(socket.getInputStream()));*/
stdOut = new PrintWriter(socket.getOutputStream(), true);
br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
if(serverHostTest.serverSocket != null && socket != null){
new Timer().schedule(new TimerTask() {
public void run(){
try {
if(br.readLine() != null){
String test = br.readLine();
System.out.println("Received MSG: " + test);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}, 1, 1);
}
}
public static void say(String[] args) throws Exception {
stdOut.write(args[2]);
stdOut.flush();
System.out.println("Message sent to the client is " + args[2]);
}
}
동일한 소켓에서 다중 스트림/판독기/기록기를 사용하지 마십시오. 소켓 수명 동안 동일한 쌍을 사용하십시오. 그렇지 않으면 버퍼링 된 것들은 버퍼링되지 않은 것들로부터 데이터를 훔칩니다. – EJP