10
안드로이드에서 UDP 소켓을 사용하려고합니다. 여기에서 안드로이드 에뮬레이터의 문자열을 보내고 PC의 Java 프로그램에서 수신합니다. 그러나 자바 프로그램을 클라이언트와 서버 (두 개의 다른 Java 프로그램을 만들었습니다)가 작동했습니다.android에서 UDP 소켓을 사용하는 방법은 무엇입니까?
이 내 안드로이드의 주요 활동입니다 : 여기
public class First extends Activity {
Button b;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
b = (Button) findViewById(R.id.button1);
b.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
Thread t = new Thread(new Second());
t.start();
}
});
입니다 안드로이드에 내 두 번째 클래스 :
public class Second implements Runnable {
Second()
{
run();
}
public void run() {
// TODO Auto-generated method stub
try {
String messageStr = "Hello Android!";
int server_port = 9876;
DatagramSocket s = new DatagramSocket();
InetAddress local = InetAddress.getByName("127.0.0.1");
int msg_length = messageStr.length();
byte[] message = messageStr.getBytes();
DatagramPacket p = new DatagramPacket(message, msg_length, local,
server_port);
s.send(p);
} catch (Exception e) {
}
}
}
이것은 PC에 내 자바 코드 수 있습니다 :
public static void main(String args[]) throws Exception
{
DatagramSocket serverSocket = new DatagramSocket(9876);
byte[] receiveData = new byte[1024];
byte[] sendData = new byte[1024];
while(true)
{
DatagramPacket receivePacket = new DatagramPacket(receiveData,receiveData.length);
serverSocket.receive(receivePacket);
String sentence = new String(receivePacket.getData(),0,receivePacket.getLength());
InetAddress IPAddress = receivePacket.getAddress();
int port = receivePacket.getPort();
System.out.println("MESSAGE RECEIVED "+sentence+" "+IPAddress+" "+port);
}
}
고마워요 –
내가 그때해야 할 일은 wifi를 통해 이것을하고 싶다고 가정합니다. –
인터넷에서 서버에 액세스 할 수있게하십시오. – zmbq