For server:
public void run()
{
socket = new DatagramSocket(port); while(repeat)
{
if(socket != null)
{
byte buffer[] = new byte[MAX_UDP_BUFFER_SIZE];
DatagramPacket packet;
try
{
packet = new DatagramPacket(buffer, MAX_UDP_BUFFER_SIZE);
socket.receive(packet);
inetAddress = packet.getAddress(); buffer = packet.getData();
......
}
catch(IOException e)
{
}
}
}
For client
inetAddress = InetAddress.getByName("255.255.255.255");
localHostIP = inetAddress.getLocalHost().getHostAddress();
localHostName = inetAddress.getLocalHost().getHostName(); DatagramSocket socket = null; socket = new DatagramSocket(); if(socket != null)
{ ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(baos);
int strLoc = 21;
dos.writeInt(strLoc);
...
dos.writeInt(someInt);
dos.writeInt(someInt); dos.writeInt(strLoc);
dos.writeBytes(someValue);
dos.writeBytes(localFriendlyName);
dos.close(); byte buffer[] = baos.toByteArray();
DatagramPacket packet =
new DatagramPacket(buffer, buffer.length,
inetAddres, port); socket.send(packet); } socket.close();
}
public void run()
{
socket = new DatagramSocket(port); while(repeat)
{
if(socket != null)
{
byte buffer[] = new byte[MAX_UDP_BUFFER_SIZE];
DatagramPacket packet;
try
{
packet = new DatagramPacket(buffer, MAX_UDP_BUFFER_SIZE);
socket.receive(packet);
inetAddress = packet.getAddress(); buffer = packet.getData();
......
}
catch(IOException e)
{
}
}
}
For client
inetAddress = InetAddress.getByName("255.255.255.255");
localHostIP = inetAddress.getLocalHost().getHostAddress();
localHostName = inetAddress.getLocalHost().getHostName(); DatagramSocket socket = null; socket = new DatagramSocket(); if(socket != null)
{ ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(baos);
int strLoc = 21;
dos.writeInt(strLoc);
...
dos.writeInt(someInt);
dos.writeInt(someInt); dos.writeInt(strLoc);
dos.writeBytes(someValue);
dos.writeBytes(localFriendlyName);
dos.close(); byte buffer[] = baos.toByteArray();
DatagramPacket packet =
new DatagramPacket(buffer, buffer.length,
inetAddres, port); socket.send(packet); } socket.close();
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货