这个应该怎么写?
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();