这个应该怎么写?
public int Trans_to_Bank(String ip,int port,String sndbuf) {
			Socket socket = new Socket(ip, port);
			DataOutputStream out = new DataInputStream(new BufferedInputStream(socket.getInputStream()));
			out.write(sndbuf,0,sndbuf.length());
			out.flush();
}
我想把SNDBUF发送到服务端,这个SNDBUF内容可能有中文.可out定义有错误.应该怎么写
------解决方案--------------------DataOutputStream out = new DataOutputStream(socket.getOutputStream());
------解决方案--------------------DataOutputStream(OutputStream out)  
         创建一个新的数据输出流,将数据写入指定基础输出流。  
 方法摘要  
  void flush()  
         清空此数据输出流。  
  int size()  
         返回计数器 written 的当前值,即到目前为止写入此数据输出流的字节数。  
  void write(byte[] b, int off, int len)  
         将指定字节数组中从偏移量 off 开始的 len 个字节写入基础输出流。  
  void write(int b)  
         将指定字节(参数 b 的八个低位)写入基础输出流。  
  void writeBoolean(boolean v)  
         将一个 boolean 值以 1-byte 值形式写入基础输出流。  
  void writeByte(int v)  
         将一个 byte 值以 1-byte 值形式写出到基础输出流中。  
  void writeBytes(String s)  
         将字符串按字节顺序写出到基础输出流中。  
  void writeChar(int v)  
         将一个 char 值以 2-byte 值形式写入基础输出流中,先写入高字节。  
  void writeChars(String s)  
         将字符串按字符顺序写入基础输出流。  
  void writeDouble(double v)  
         使用 Double 类中的 doubleToLongBits 方法将 double 参数转换为一个 long 值,然后将该 long 值以 8-byte 值形式写入基础输出流中,先写入高字节。  
  void writeFloat(float v)  
         使用 Float 类中的 floatToIntBits 方法将 float 参数转换为一个 int 值,然后将该 int 值以 4-byte 值形式写入基础输出流中,先写入高字节。  
  void writeInt(int v)  
         将一个 int 值以 4-byte 值形式写入基础输出流中,先写入高字节。  
  void writeLong(long v)  
         将一个 long 值以 8-byte 值形式写入基础输出流中,先写入高字节。  
  void writeShort(int v)  
         将一个 short 值以 2-byte 值形式写入基础输出流中,先写入高字节。  
  void writeUTF(String str)  
         以与机器无关方式使用 UTF-8 修改版编码将一个字符串写入基础输出流。  
------解决方案--------------------调整一下你的代码。
Java code
    Socket socket = new Socket(ip, port);
    DataOutputStream out = new DataOutputStream(socket.getOutputStream());
    byte[] bs = sndbuf.getBytes("GBK");
    out.write(bs, 0, bs.length);
    out.flush();