首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >套接字- android客户端到c#服务器连接

套接字- android客户端到c#服务器连接
EN

Stack Overflow用户
提问于 2014-04-25 16:59:01
回答 3查看 5.1K关注 0票数 0

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

C#:

代码语言:javascript
运行
复制
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();

爪哇:

代码语言:javascript
运行
复制
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 =新套接字(serverAddr,SERVERPORT)”上;它应该是java套接字函数中的问题--需要另一个函数连接到C# -服务器。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-04-26 12:51:39

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

票数 0
EN

Stack Overflow用户

发布于 2014-04-25 18:27:08

您需要实际发送一些东西,您在Java类中所做的全部工作就是检索InetAddress并打开一个套接字?

你真的需要做一些事情比如发送一个包裹..。

从阅读以下内容开始:

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

然后以您的方式完成以下几个示例:http://examples.javacodegeeks.com/android/core/socket-core/android-socket-example/

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

票数 1
EN

Stack Overflow用户

发布于 2014-04-25 21:49:06

代码语言:javascript
运行
复制
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#

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23299001

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档