자바로 서버를 만들었는데
패킷두개를 연속으로보낼때 가끔하나가씹힌다
근대 씹히는게 졸라 랜덤임 서버에서 두개받고 보낼때 하나가씹혀져서보내지거나
서버에서 두개받을때 하나가씹혀서오거나 소스에잘못된거있냐??
tcp는 무손실인데 왜이런지모르겟다
아래는 간략소스인데 서버 클라모두 아래소스를사용함 send로 패킷보내고 line=br.readLine(); 이걸로 값받고
class Data extends Thread
{
Socket socket;
static public void send(String str, Socket sock)
{
try
{
OutputStream out = sock.getOutputStream();
PrintWriter pw = new PrintWriter(new OutputStreamWriter(out));
pw.println(str);
System.out.println("보낸내용mr:"+str);
pw.flush();
}catch(IOException E){
System.out.println("보내기에러"+E.getMessage());
}
}
public void run()
{
try
{
while(true)
{
String line;
InputStream in = socket.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(in));
line=br.readLine(); //값을 받음
System.out.println("받은내용data"+line);
받을값을가지고 처리한후
send메소드로 패킷 을 다시 클라로보냄
}catch (IOException e1)
{
e1.printStackTrace();
}
}
}
}
무손실이라니
제발 제 부탁좀 들어주시면 안될까요?ㅠㅠ
포기해징기스칸녀나 설리닷꺼져
자바는 안 해봐서 모르겠는데 while 안에서 죄다 여는게 맞어?
그게문제일거같진않은데 발생하는것도 랜덤임 아마 네트워크환경에영향을받는거같아
저렇게 readLine쓰면 한 번에 수신된거 쫙 빨리지 않을 수 있음. 텅빌 때까지 빨아야지
그럼어캐함