【问题标题】:blackberry socket connection黑莓插座连接
【发布时间】:2011-12-28 07:52:46
【问题描述】:

我正在尝试在黑莓中编写简单的套接字程序,但它不起作用。我已经尝试了很多。请有人帮助我。模拟器是否需要额外设置?

提前致谢:)

try
{
    StreamConnection conn =(StreamConnection)Connector.open("socket://some ip:4444;deviceside=false,Connector.READ_WRITE,true");
    OutputStreamWriter _out = new OutputStreamWriter(conn.openOutputStream());
    String data = "This is a test\n";
    int length = data.length();
    _out.write(data, 0, length);
    InputStreamReader _in = new InputStreamReader(conn.openInputStream());
    char[] input = new char[length];

    for ( int i = 0; i < length; ++i ) 
    {
        input[i] = (char)_in.read();
    };

    _in.close();
    _out.close();
    conn.close();
}

【问题讨论】:

  • 我没有收到错误。构建成功。但是消息没有发送到服务器。
  • 成功构建并不意味着您的代码可以工作:p。将一些 try-catch 块放入您的代码并检查是否有任何异常。而且我不确定您为什么将“Connector.READ_WRITE,true”添加到网址中。我认为,如果您想启用读/写连接,那么“Connection.setRequestProperty(key, value)”之类的内容可能会对您有所帮助。

标签: blackberry


【解决方案1】:

如果您尝试完全按照上面提到的方式进行连接,那么您确实不应该能够连接:

StreamConnection conn =(StreamConnection)Connector.open("socket://some
ip:4444;deviceside=false,Connector.READ_WRITE,true")

因为布尔值true后面有一个错误的引号,应该放在...deviceside=false之后,即正确的@ 987654324@ 应该是这样形成的:

StreamConnection conn =(StreamConnection)Connector.open("socket://some
ip:4444;deviceside=false",Connector.READ_WRITE,true);

Connector.READ_WRITEboolean 值是 Connector.Open() 方法的参数。

【讨论】:

    【解决方案2】:

    【讨论】:

    • stackoverflow 上的答案应该是自包含的。仅仅链接到支持论坛文章并没有那么有用,因为论坛可能会改变他们的链接方案,或者完全消失。用引号突出文章的重要部分,这将是 stackoverflow 的一个很好的答案。
    猜你喜欢
    • 2011-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-16
    • 2012-06-21
    • 1970-01-01
    相关资源
    最近更新 更多