模拟器当服务端,PC当客户端java

一、首先要进行端口映射,端口映射的方法:android

利用telnet命令服务器

telnet 127.0.0.1 5554 (链接5554模拟器)ui

redir add ::(增长端口映射:例如,redir add udp:6000:6000 将PC的6000端口映射到模拟器的6000端口,这样当访问PC的6000端口时,就会映射到模拟器上,即访问模拟器的6000端口)spa

二、android服务器端关键代码code

public void Server(){

new Thread(){

public void run(){

try {

DatagramSocket server = new DatagramSocket(6000);//监听6000端口

byte[] recvBuf = new byte[100];

DatagramPacket recvPacket = new DatagramPacket(recvBuf , recvBuf.length);

while(true){

server.receive(recvPacket);

String recvStr = new String(recvPacket.getData() , 0 , recvPacket.getLength());

if(recvStr.equals("quit")){

System.out.println("与"+recvPacket.getAddress()+"通讯结束");

return;

}

System.out.println("received:" + recvStr);

}

} catch (SocketException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

}.start();

}三、PC客户端代码

private void client() {

try {

DatagramSocket client = new DatagramSocket();

while(true){

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

String str = null;

while((str = br.readLine()) != null){

byte[] sendBuf = str.getBytes();

InetAddress addr = InetAddress.getByName("127.0.0.1");

int port = 6000;

DatagramPacket sendPacket = new DatagramPacket(sendBuf ,sendBuf.length , addr , port);

client.send(sendPacket);

if(str.equals("quit")){

client.disconnect();

return;

}

}

}

} catch (SocketException e) {

e.printStackTrace();

} catch (UnknownHostException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐