sockets-android客户端到c服务器的连接

本文关键字:连接 服务器 客户端 sockets-android | 更新日期: 2023-09-27 18:00:23

我尝试从android连接到c#-server。我的电脑ip地址是:"10.100.102.7";我测试了android客户端和服务器应用程序,它们运行良好,当我尝试从android连接到C#服务器时,问题就开始了

C#:

IPEndPoint localEndPoint = new IPEndPoint(IPAddress.Parse("10.100.102.7"), 6000);/
listener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
listener.Bind(localEndPoint);
listener.Listen(100);
Receiver = listener.Accept();

Java:

private Socket Sender_Socket;
private static final int SERVERPORT = 6000;
private static final String SERVER_IP = "10.100.102.7";
class Connect_To_Server implements Runnable
 {
  @Override
  public void run()
   {
    try
     {
      InetAddress serverAddr = InetAddress.getByName(SERVER_IP);
      Sender_Socket = new Socket(serverAddr, SERVERPORT);
     }
    catch (UnknownHostException e1)
     {
      e1.printStackTrace();
     }
    catch (IOException e1)
     {
      e1.printStackTrace();
     }
   }
 }

在C#中,它停止在"Receiver=listener.Accept();"在java(android)中,它停止在"Sender_Socket=new Socket(serverAddr,SERVERPORT);"这应该是java套接字函数的问题——需要另一个函数来连接到C#服务器。

sockets-android客户端到c服务器的连接

您实际上需要发送一些东西,您在Java类中所做的一切都是检索InetAddress并打开一个套接字?

你真的需要做一些事情,比如发送一个数据包。。。

首先阅读以下内容:

http://developer.android.com/reference/java/net/Socket.html

然后通过以下示例进行操作:http://examples.javacodegeeks.com/android/core/socket-core/android-socket-example/

此外,您应该确保添加另一个(这次是通用的)错误捕获器,因为您处理的异常并不是在使用套接字/连接时可能发生的唯一两个异常。

byte[] byData = System.Text.Encoding.ASCII.GetBytes("Connected");
listener.Send(byData);
waitForData(listener);

void waitForData(SocketState state)
    {
        try
        {
            state.Socket.BeginReceive(state.DataBuffer, 0, state.DataBuffer.Length, SocketFlags.None, new AsyncCallback(readDataCallback), state);
        }
        catch (SocketException se)
        {
            //Socket has been closed  
            //Close/dispose of socket
        }
    }
    public void readDataCallback(IAsyncResult ar)
    {
        SocketState state = (SocketState)ar.AsyncState;
        try
        {
            // Read data from the client socket.
            int iRx = state.Socket.EndReceive(ar);
            //Handle Data....
            waitForData(state);
        }
        catch (ObjectDisposedException)
        {
            //Socket has been closed  
            //Close/dispose of socket
        }
        catch (SocketException se)
        {
            //Socket exception
            //Close/dispose of socket
        }
    }

我擅长仅使用C#的

我关闭了防火墙,现在他们可以连接了;