내 Client.class로만 패킷을 보낼 수 있지만 Server.class로 패킷을받을 수 없습니다. 클라이언트와 서버는 각각 두 개의 스레드에 있습니다. MainActivity
을 업데이트하려면 처리기를 사용합니다. 핸들러는 작동하지만 (테스트 한) Server.class는 작동하지 않습니다.안드로이드 앱에서 UDP 패킷을 수신 할 수 없음
public class Client implements Runnable {
//@Override
public void run() {
do{
try {
InetAddress serverAddr = InetAddress.getByName(Server.CLIENTIP);
DatagramSocket socket = new DatagramSocket();
byte[] buf = ("Test").getBytes();
DatagramPacket packet = new DatagramPacket(buf, buf.length,serverAddr,Server.CLIENTPORT);
socket.send(packet);
}
catch (Exception e) {}
}
while(open == true);
}
}
public class Server implements Runnable {
public static String CLIENTIP = "192.168.0.13";//send-ip
public static String SERVERIP = "10.0.0.18";//receive-ip
public static final int CLIENTPORT = 5000; //send-port
public static final int SERVERPORT = 5001; //receive-port
//@Override
public void run() {
do
{
try {
DatagramSocket socket = new DatagramSocket(SERVERPORT);
byte[] buf = new byte[256];
DatagramPacket rpacket = new DatagramPacket(buf, buf.length);
socket.receive(rpacket);
String x = new String(rpacket.getData());
MainActivity.glText = x;
MainActivity.mHandler.post(MainActivity.mTimer);
}
catch (Exception e) {}
}
while(open == true);
}
}
누구나이 문제에 대한 해결책이 있습니까? 귀하의 답변 주셔서 감사합니다! ;)
빠른 대답 감사드립니다. 안드로이드 플랫폼과 내 컴퓨터 사이에서 테스트로 의사 소통하고 싶습니다. 내 컴퓨터의 IP 주소는 192.168.0.13이고 내 플랫폼은 IP 10.0.0.18입니다. 내 컴퓨터의 설정은 send-port = 5001/receive port = 5000이고 Andoird-Plattform send-port = 5000/receive-port = 5001입니다. Client.class가 작동 중입니다. 하지만 컴퓨터에서 아무 것도받을 수 없습니다. 코드에서 무엇을 변경해야합니까? 고마워;) – Chris