2012-08-03 62 views
0

我正在使用一个tcp服务器通信器,并且使用在此website上发现的编码。我在进口前五名进口商中遇到错误。它说它无法解决。我该如何获得这些进口产品?在java tcp中输入eneter的错误

import eneter.messaging.diagnostic.EneterTrace; 
import eneter.messaging.endpoints.typedmessages.*; 
import eneter.messaging.messagingsystems.messagingsystembase.*; 
import eneter.messaging.messagingsystems.tcpmessagingsystem.TcpMessagingSystemFactory; 
import eneter.net.system.EventHandler; 
import android.app.Activity; 
import android.os.Bundle; 
import android.os.Handler; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.*; 

public class AndroidNetCommunicationClientActivity extends Activity { 
    // Request message type 
    // The message must have the same name as declared in the service. 
    // Also, if the message is the inner class, then it must be static. 
    public static class MyRequest { 
     public String Text; 
    } 

    // Response message type 
    // The message must have the same name as declared in the service. 
    // Also, if the message is the inner class, then it must be static. 
    public static class MyResponse { 
     public int Length; 
    } 

    // UI controls 
    private Handler myRefresh = new Handler(); 
    private EditText myMessageTextEditText; 
    private EditText myResponseEditText; 
    private Button mySendRequestBtn; 

    // Sender sending MyRequest and as a response receiving MyResponse. 
    private IDuplexTypedMessageSender<MyResponse, MyRequest> mySender; 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.tcp_server); 

     // Get UI widgets. 
     myMessageTextEditText = (EditText) findViewById(R.id.messageTextEditText); 
     myResponseEditText = (EditText) findViewById(R.id.messageLengthEditText); 
     mySendRequestBtn = (Button) findViewById(R.id.sendRequestBtn); 

     // Subscribe to handle the button click. 
     mySendRequestBtn.setOnClickListener(myOnSendRequestClickHandler); 

     try { 
      openConnection(); 
     } catch (Exception err) { 
      EneterTrace.error("Open connection failed.", err); 
     } 
    } 

    @Override 
    public void onDestroy() { 
     // Stop listening to response messages. 
     mySender.detachDuplexOutputChannel(); 
    } 

    private void openConnection() throws Exception { 
     // Create sender sending MyRequest and as a response receiving 
     // MyResponse 
     IDuplexTypedMessagesFactory aSenderFactory = new DuplexTypedMessagesFactory(); 
     mySender = aSenderFactory.createDuplexTypedMessageSender(
       MyResponse.class, MyRequest.class); 

     // Subscribe to receive response messages. 
     mySender.responseReceived().subscribe(myOnResponseHandler); 

     // Create TCP messaging for the communication. 
     // Note: 10.0.2.2 is a special alias to the loopback (127.0.0.1) 
     // on the development machine 
     IMessagingSystemFactory aMessaging = new TcpMessagingSystemFactory(); 
     IDuplexOutputChannel anOutputChannel = aMessaging 
       .createDuplexOutputChannel("tcp://10.0.2.2:8060/"); 

     // Attach the output channel to the sender and be able to send 
     // messages and receive responses. 
     mySender.attachDuplexOutputChannel(anOutputChannel); 
    } 

    private void onSendRequest(View v) { 
     // Create the request message. 
     MyRequest aRequestMsg = new MyRequest(); 
     aRequestMsg.Text = myMessageTextEditText.getText().toString(); 

     // Send the request message. 
     try { 
      mySender.sendRequestMessage(aRequestMsg); 
     } catch (Exception err) { 
      EneterTrace.error("Sending the message failed.", err); 
     } 
    } 

    private void onResponseReceived(Object sender, 
      final TypedResponseReceivedEventArgs<MyResponse> e) { 
     // Display the result - returned number of characters. 
     // Note: Marshal displaying to the correct UI thread. 
     myRefresh.post(new Runnable() { 
      @Override 
      public void run() { 
       myResponseEditText.setText(Integer.toString(e 
         .getResponseMessage().Length)); 
      } 
     }); 
    } 

    private EventHandler<TypedResponseReceivedEventArgs<MyResponse>> myOnResponseHandler 

    = new EventHandler<TypedResponseReceivedEventArgs<MyResponse>>() { 
     @Override 
     public void onEvent(Object sender, 
       TypedResponseReceivedEventArgs<MyResponse> e) { 
      onResponseReceived(sender, e); 
     } 
    }; 

    private OnClickListener myOnSendRequestClickHandler = new OnClickListener() { 
     public void onClick(View v) { 
      onSendRequest(v); 
     } 
    }; 
+0

Try Crt + Shift + O – 0gravity 2012-08-03 17:30:06

+0

您是简单地复制粘贴网站上的代码,还是下载并将代码包含在您的项目中?页面顶部有一个“获取源代码”链接。 如果您没有包含您尝试在项目中导入的名称的源,则无法调用它们。它们不是Android SDK的一部分。 – AntoineG 2012-08-03 17:44:37

+0

山姆贝文斯如何解决这个问题,请分享 – 2015-03-14 06:52:01

回答

0

我从eneter网站下载了jar文件。这样做后,我能够改变我的构建路径和日食能够了解进口。