安卓平板电脑和PC之间的通信
本文关键字:之间 通信 PC 平板电脑 | 更新日期: 2024-10-21 15:57:15
我从安卓系统开始,在我的第一个应用程序中,我需要在安卓表和PC之间建立通信。通信是通过staqtic IP直接进行的,因为我需要当我有几台电脑和平板电脑时,每个表只与它的PC通信。
从平板电脑到电脑的通信已经工作,但从电脑到桌子我无法获得传输的数据
安卓侧
public class Server implements Runnable
{
@Override
public void run()
{
while (always==true)
{
while(start2==false)
{
}
try
{
InetAddress serverAddr = InetAddress.getByName("192.168.173.133");
updatetrack("'nServer: Start connecting'n");
//*DatagramSocket socket = new DatagramSocket(SERVERPORT2, serverAddr);/
DatagramSocket socket = new DatagramSocket(SERVERPORT2);
byte[] buf = new byte[17];
DatagramPacket packet = new DatagramPacket(buf, buf.length, serverAddr, SERVERPORT2);
//*DatagramPacket packet = new DatagramPacket(buf, buf.length);/
updatetrack("Server: Receiving'n");
socket.receive(packet);
updatetrack("Server: Message received: '" + new String(packet.getData()) + "''n");
updatetrack("Server: Succeed!'n");
start2=false;
}
catch (Exception e)
{
updatetrack("Server: Error!'n");
start2=false;
}
}
}
}
192.168.173.133是表IP,SERVERPORT2是4445当我启动应用程序时,它在显示"服务器:正在接收"后仍在等待数据,但
C#代码
public static void Main()
{
IPEndPoint iep2 = new IPEndPoint(IPAddress.Parse("192.168.173.133"), 4445);
string hostname = Dns.GetHostName();
byte[] data = Encoding.ASCII.GetBytes(hostname);
sock.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast, 1);
sock.SendTo(data, iep2);
sock.Close();
}
我想这是任何愚蠢的认为我被遗忘了,但在阅读了许多论坛和书籍后,我在这一点上停止了
任何建议都欢迎
您使用UDP连接和套接字。receive(数据包)不等待数据包。如果缓冲区中没有数据包,则此操作将引发异常。尝试将您的代码更改为:
@Override
public void run()
{
while (always==true)
{
while(start2==false)
{
}
try
{
InetAddress serverAddr = InetAddress.getByName("192.168.173.133");
updatetrack("'nServer: Start connecting'n");
//*DatagramSocket socket = new DatagramSocket(SERVERPORT2, serverAddr);/
DatagramSocket socket = new DatagramSocket(SERVERPORT2);
while (always==true)
{
try{
byte[] buf = new byte[17];
DatagramPacket packet = new DatagramPacket(buf, buf.length, serverAddr, SERVERPORT2);
//*DatagramPacket packet = new DatagramPacket(buf, buf.length);/
updatetrack("Server: Receiving'n");
socket.receive(packet);
updatetrack("Server: Message received: '" + new String(packet.getData()) + "''n");
updatetrack("Server: Succeed!'n");
start2=false;
}
catch(Exception ex) {ex.printStackTrace();}
}
}
catch (Exception e)
{
updatetrack("Server: Error!'n");
start2=false;
}
}
}