现在有个终端,C语言的程序不停的往服务器上的9999端口里发字符串
怎么用JAVA写个程序把字符串读出来发送到202.181.53.128 的8888端口里
有两个问题我想不明
1、C语言没跟我的JAVA服务端建立连接的前提之下怎么发的数据?
2、我用JAVA写的服务器端的话,跟C语言建立不了连接能从端口里读数据吗?
难道要用UDP
socket高人指点
能写个源码更好了。

解决方案 »

  1.   

    1、既然没建立连接就能发数据,那么肯定不是TCP连接。
    2、直接用UDP向该端口读取数据就行了,UDP是不分严格的服务器端或是客户端端的。源码可以搜索相关的JAVA 网络通讯的帖子或是在CSDN下载里面搜索
      

  2.   

    1、C语言没跟我的JAVA服务端建立连接的前提之下怎么发的数据?
          C程序发给服务器了,服务器负责接受了,跟你的Java程序启动不启动没有关系。 一个是8888端口,一个是9999端口
    2、我用JAVA写的服务器端的话,跟C语言建立不了连接能从端口里读数据吗?
           你是跟服务器建立连接,不是直接跟C程序,服务器肯定开了9999端口,专门给你连接,读数据的。
    另:socket通信,跟具体编程语言没有关系。
      

  3.   

    给个socket编程的完整例子给你,
    http://mybeautiful.javaeye.com/blog/659317
      

  4.   

    1、C语言没跟我的JAVA服务端建立连接的前提之下怎么发的数据?
       UDP
    2、我用JAVA写的服务器端的话,跟C语言建立不了连接能从端口里读数据吗?
       UDP
      

  5.   


    建立UDP之后,获取完数据之后怎么给指定的IP和端口发送数据啊?
      

  6.   

    TCP要握3次爪子后才能传输数据。
    UDP不管,只管传,对方收不收的到不管。。
      

  7.   

    这个端口号,要看是TCP协议的端口号,还是UDP协议的端口号了。终端向服务器发送信息,具体用什么协议,这个,我想,我们可能无法解答,
    楼主可以请教一下,终端或者服务器程序的相关技术人员,来具体了解一下。
    另外,除了底层的TCP或者UDP协议以外,通信双方,在应用层面上,应该还有一个自定义的协议才对。
    (也就是楼主说的那个什么字符串,最起码,字符串应该有编码吧?)我理解,大概,楼主是想用Java做个程序,把终端的信息转发到其他的主机上面,进行处理。
    这样的话,Java程序,应该分两个逻辑部分,一个是服务端部分,监听原来服务端程序的端口
    (前提是,以前该端口的程序,要终结才行);另一个是客户端部分,远其他主机发送请求建立连接。当然,通过楼主所问的问题,可以看出,楼主对网络通信这个领域,了解的并不好。
    网络通信,其实可以分为对等通信和不对等通信。对等通信,网络个节点的地位是平等的,谁都可以主动发起连接和接收其他节点的连接,现实当中P2P协议就是例子;而不对等的通信,说明网络上存在主导性的节点,其他节点处于从属低位,C/S架构的程序就是例子,网络中各客户端处于从属地位,由服务端统一进行协调处理。就TCP协议而言,一般来说,客户端程序只发起连接请求,是不会接受其他客户端的连接请求的。
    当然,众所周知,一个连接,是双向的,既可以发送消息,也可以接收消息。
    我所强调是哪一方发起这个连接。
    而UDP协议,不存在连接一说。但是,发送方也可以根据具体应用层的协议,获得请求信息的应答信息。
      

  8.   

    非常感谢楼上的几位热心的回复
    可是所问非所答啊
    即便现在是用UDP
    但是需求让你接到数据之后往指定的IP和端口上发数据
    我的意思是现在用UDP接收到数据之后怎么往指定的IP和端口上发数据
    就这么简单
      

  9.   

    1.如果你知道c终端的ip和端口,可以请求连接并索取数据然后转发给 指定的ip和端口如果你不知道c终端的ip和端口并且没有建立连接的情况下,无法得到数据。
    2.如果c终端主动发送socket通讯给java服务器端,可以索取到数据并且能够返回做交互通信。 
    然后把数据转发给置顶ip和端口。
    就这么简单。
      

  10.   


    楼上的意思是即便是我用UDP接到数据之后,如果给指定端口发信息的话还要用TCP建立链接吗?
      

  11.   

     
    可能就用UDP吧  (⊙o⊙)
      

  12.   

    那要看8888是TCP在监听还是UDP在监听了,TCP在监听那只能建立TCP连接,UDP在监听那只能发UDP包咯。