各位,我是android新手,现在在做android的TCP和UDP通信,我从网上下的源码,编译运行都没有问题,我服务器端用delphi做的,可是我服务器端怎么也收不到android发给我的文字信息,请问各位是不是还有什么设置,才可以进行tcp,udp通信的开发呀?
try {
Socket s = new Socket("localhost", 12581);
// outgoing stream redirect to socket
OutputStream out = s.getOutputStream();
// 注意第二个参数据为true将会自动flush,否则需要需要手动操作out.flush()
PrintWriter output = new PrintWriter(out, true);
output.println("Hello IdeasAndroid!");
BufferedReader input = new BufferedReader(new InputStreamReader(s.getInputStream()));
// read line(s)
String message = input.readLine();
Log.d("Tcp Demo", "message From Server:" + message);
s.close(); }
catch (UnknownHostException e) {
e.printStackTrace(); }
catch (IOException e) {
e.printStackTrace(); }
}
try{
//首先创建一个DatagramSocket对象
DatagramSocket socket = new DatagramSocket(4567);
//创建一个InetAddree
InetAddress serverAddress = InetAddress.getByName("192.168.1.104");
String str = "hello"; //这是要传输的数据
byte data [] = str.getBytes(); //把传输内容分解成字节
//创建一个DatagramPacket对象,并指定要讲这个数据包发送到网络当中的哪个、地址,以及端口号
DatagramPacket packet = new DatagramPacket(data,data.length,serverAddress,4567);
//调用socket对象的send方法,发送数据
socket.send(packet);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
Socket s = new Socket("localhost", 12581);
// outgoing stream redirect to socket
OutputStream out = s.getOutputStream();
// 注意第二个参数据为true将会自动flush,否则需要需要手动操作out.flush()
PrintWriter output = new PrintWriter(out, true);
output.println("Hello IdeasAndroid!");
BufferedReader input = new BufferedReader(new InputStreamReader(s.getInputStream()));
// read line(s)
String message = input.readLine();
Log.d("Tcp Demo", "message From Server:" + message);
s.close(); }
catch (UnknownHostException e) {
e.printStackTrace(); }
catch (IOException e) {
e.printStackTrace(); }
}
try{
//首先创建一个DatagramSocket对象
DatagramSocket socket = new DatagramSocket(4567);
//创建一个InetAddree
InetAddress serverAddress = InetAddress.getByName("192.168.1.104");
String str = "hello"; //这是要传输的数据
byte data [] = str.getBytes(); //把传输内容分解成字节
//创建一个DatagramPacket对象,并指定要讲这个数据包发送到网络当中的哪个、地址,以及端口号
DatagramPacket packet = new DatagramPacket(data,data.length,serverAddress,4567);
//调用socket对象的send方法,发送数据
socket.send(packet);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
另外你用的是模拟器吗?
如果是,那么Socket s = new Socket("localhost", 12581)这一句的地址
你换成10.0.0.2试试
这是android内置的IP,是模拟器设定的特定ip