对于一个完全没接触过socket和多线程的新手,开发一个http接口要多久呢?首先利用socket和服务端通信,然后再对发送的报文做处理,最后做一个http接口让别人使用,整个功能实现下来要多久呢?报文是自定义格式的!

解决方案 »

  1.   

    有现成的soap技术,为啥非要用socket实现呢?是要学习用的么
      

  2.   

    现成的soap技术是指什么呢?可以给说下吗?
      

  3.   

    因为我在客户端和服务端通信要用到socket呀!他给的只有IP和端口
      

  4.   


    首先, 第一步和第二布网上都有现成的例子, 可以直接拿过来, 稍作修改。 http接口的协议应该是要跟对方的商议之后而定的, 根据他们的需求, 定义个接口便可。 整个流程下来不难
      

  5.   

    看你需求大小,如果是简单的少量链接,网上百度下简单的socket例子,复制下就行,新手的话,最多5天也完了。
    如果是大量链接并发管理的话,建议先去搜下MINA框架的相关支持,掌握下基本例子的编写,熟悉过程大约需要一周,剩下实际开发就很快了,接口都是现成的,只写逻辑就行。
      

  6.   

    在网上找几个Socket的小例子,练练手也好。SOAP是一种协议,嗯,可以先不管。
      

  7.   


    首先, 第一步和第二布网上都有现成的例子, 可以直接拿过来, 稍作修改。 http接口的协议应该是要跟对方的商议之后而定的, 根据他们的需求, 定义个接口便可。 整个流程下来不难
    帮忙看下我上面的那个问题可以吗?
      

  8.   

    首先回答楼主关于协议处理的问题:
    按我的理解,客户端与服务器之间的通讯协议应该是双方约定的私有通讯协议(即数据排列格式由双方约定),设计者在制定协议格式时,必须考虑协议的唯一标识性,即每条通讯报文都具有唯一的特征属性(比如报文编号)。楼主如果作为客户端向服务器发送请求,只要在发送之前,将报文内容存到内存中即可,当收到服务器的反馈报文时,根据报文编号找到对应的请求报文(反馈报文与请求报文编号一致,或有其他关联规则)。
    另外,这个问题和多线程没有关系,就算开再多的线程,也是使用同一条TCP链路进行通讯,每条线程读取到的内容是随机的,所以靠多线去进行报文对应,没有意义。然后就是关于程序通讯机制的问题了:
    本例中双方通讯是使用的TCP方式,也就是全双工长连接的方式。理论上,任何使用TCP方式通讯的链路,都需要使用心跳机制来确定对方的在线情况,因为TCP是保持连接的,而实际运行时此前建立的连接可能被中断,从而导致后续的发送请求失败。正常的TCP链路close,程序是可以监测到的(关闭时,系统会自动发送一条链路断开的报文),但是异常断开的话,程序是监测不到的(如直接拔掉网线、交换机故障等),对方会仍然认为链路可用,所以需要使用心跳机制,定时发送报文,证明双方状态正常。
    所以楼主需要使用异步的方式来管理通讯。
    MINA提供了现成的框架,对用户而言,网络通讯变成了触发式,不再需要用户显式的死循环轮询读socket了,当指定链路收到数据报文的时候,会自动调用指定的接口函数,楼主只要在那里写下相关逻辑即可。