socket利用TCP协议连上之后,是不是只能用流形式发送信息呢,求救中!!!

解决方案 »

  1.   

    当然是用流。
    应该是可以的,我用java和c通信过。
      

  2.   

    to lusxiao:说一下C与java如何通信?比如java与java可以writeObject/readObject来做,但是与C显然这样有问题。对吧?那是如何实现的?比如字串,在java中的String是一个对象,在C++中有自己的字串对象,
    是不是非要变成字符数组进行?还是要更彻底变成字节流的方式?
      

  3.   

    java: byte[]
    c: int *
      

  4.   

    用Socket类中的getOutputStream()方法的到一个OutputStream类对象,然后就可以往它里发东西了。不过要主意Java中的数是以big-endian形试存储的所以通信时要主轶
      

  5.   

    我的java程序是客户端,想接受vb写的服务器端的信息
    用到了
    ips=socket1.getInputStream();
    dis=new DataInputStream(ips);
    String message=dis.readUTF();
    这个程序与java写的基于流的服务器程序通信正常,但不能接受vb的服务器程序,注意:可以连接,不能通信!头儿催得紧,各位想想办法啦,拜托(鞠躬中……)
      

  6.   

    我是用OutputStreamWriter,InputStreamReader来作的。IOutputStreamWriter.javaimport java.io.OutputStream;
    import java.io.OutputStreamWriter;
    import java.io.OutputStreamWriter;/**
     * Title:        SMS Simulate
     * Description:  This is a test program that simulate a simple SMS system.
     * Copyright:    Copyright (c) 2001
     * Company:      
     * @author lusxiao
     * @version 1.0
     */public class IOutputStreamWriter extends OutputStreamWriter {  public IOutputStreamWriter(OutputStream os) {
        super(os);
      }
      public void write(String str, int off, int len) throws java.io.IOException {
        char c[]=new char[len];
        int clen=(len>str.length())?str.length():len;
        str.getChars(0,clen,c,0);
        super.write( c,  off,  len);
      }
    }IInputStreamReader.java
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.IOException;/**
     * Title:        SMS Simulate
     * Description:  This is a test program that simulate a simple SMS system.
     * Copyright:    Copyright (c) 2001
     * Company:      
     * @author lusxiao
     * @version 1.0
     */public class IInputStreamReader extends InputStreamReader {
      public IInputStreamReader(InputStream is){
        super(is);
      }  public String read(int offset,int length) throws IOException{
        char c[]=new char[length];
        read(c,0,length);
        return new String(c).trim();
      }}服务器端c的例子找不到了。