게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
자바 안드로이드 UDP통신 DatagramSocket 문제 돌겠네요ㅠㅠ
게시물ID : programmer_7638짧은주소 복사하기
작성자 : 정말인생이란
추천 : 0
조회수 : 6400회
댓글수 : 2개
등록시간 : 2015/01/15 12:52:07
일단 소스 아주 간단한건데요 로컬 피씨(한피씨)에서 2개의 클라이언트 서버 돌리면 아주 잘 됩니다. 문제는 제가 클라이언트를 안드로이드폰으로하고 서버를 피씨로 하는데 같은 공유기를 쓰고있고 혹시나몰라서 포트포워딩까지 다 해도 클라이언트에서는 분명 send를 해서 데이터패킷을 보내는데 서버에서 
socket.receive(packet); 이부분에서 받질 않습니다.. 도대체 어떻게 해야 받게 하는지 정말 미칠노릇이네요 고수분들 답좀 부탁드려요

클라이언트 권한 전부 줬구요 특별한 에러가 생기는 것도 아니고 클라이언트 서버 둘다 전부 스레드를 사용하고 있습니다 소스는 스레드 안에서 그냥 예제소스를 넣은것입니다.

-----------------클라이언트 소스----------------------------------

try
{
while (true)
{
// 전송할  DatagramPacket 생성
DatagramPacket packet = new DatagramPacket("REFRESH".getBytes(),7, InetAddress
.getByName("192.168.88.1"), 5000);
// DatagramSocket 생성
DatagramSocket socket = new DatagramSocket();
socket.setReceiveBufferSize(MAX);

// DatagramPacket 전송
socket.send(packet);
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
socket.close();

}
} catch (UnknownHostException e){
e.printStackTrace();
} catch (SocketException e){
e.printStackTrace();
} catch (IOException e){
e.printStackTrace();
}






------------------서버소스--------------------------
 socket = new DatagramSocket(5000); 
while (true)
{
try
{
// 데이터를 받을 버퍼
byte[] inbuf = new byte[256];

// 데이터를 받을 Packet 생성
DatagramPacket packet = new DatagramPacket(inbuf, inbuf.length);

// 데이터 수신
// 데이터가 수신될 때까지 대기됨
socket.receive(packet);

// 수신된 데이터 출력`
System.out.println("received length : " + packet.getLength() + ", received data : "
+ new String(packet.getData(), 0, packet.getLength()));
} catch (IOException e)
{
e.printStackTrace();
}
}



당최안되는 이유를 모르겠는데 혹시 이유좀 아시는분 있으신가요 ㅠㅠ
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호