字符串是可以的,但内存中有的数据是不能用字符串表示的,也不能用char数组,如:大于128的字节(0xbb等),怎样处理呢,我不想把内存转化成字符串再发,那样对方接收到数据还要还原,还有最后发送的回车换行能去掉吗?请多指教。
代码如下:
import java.net.*;
import java.io.*;
public class TXClient
{
public static void main(String[] args)
{
try
{
Socket echoClient = new Socket("102.23.163.196",9000);
PrintWriter out = new PrintWriter(echoClient.getOutputStream(),true);
BufferedReader in = new BufferedReader(new InputStreamReader(echoClient.getInputStream()));
//****************************************
String clientInput = "AA";
//在这里我想把内存中的一个字节内容是0xaa发送出去,对方接收到仍然是一个字节0xaa
//字符串可以发出去,0xaa呢
//****************************************
String serverOutput;
BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in));
out.println(clientInput);
serverOutput = in.readLine();
}
out.close();
in.close();
echoClient.close();
System.out.println("test...");
}
catch(UnknownHostException e)
{
System.err.println("主机连接错误!");
System.exit(1);
}
catch(IOException e)
{
System.err.println("I/0 error:" + e.getMessage());
System.exit(1);
}
}
}
代码如下:
import java.net.*;
import java.io.*;
public class TXClient
{
public static void main(String[] args)
{
try
{
Socket echoClient = new Socket("102.23.163.196",9000);
PrintWriter out = new PrintWriter(echoClient.getOutputStream(),true);
BufferedReader in = new BufferedReader(new InputStreamReader(echoClient.getInputStream()));
//****************************************
String clientInput = "AA";
//在这里我想把内存中的一个字节内容是0xaa发送出去,对方接收到仍然是一个字节0xaa
//字符串可以发出去,0xaa呢
//****************************************
String serverOutput;
BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in));
out.println(clientInput);
serverOutput = in.readLine();
}
out.close();
in.close();
echoClient.close();
System.out.println("test...");
}
catch(UnknownHostException e)
{
System.err.println("主机连接错误!");
System.exit(1);
}
catch(IOException e)
{
System.err.println("I/0 error:" + e.getMessage());
System.exit(1);
}
}
}
需要把对象放入stream传送则使用ObjectInputStream和ObjectOutputStream
这个是为各种基本类型(int,long之类的)和支持序列化的对象设计的。
直接用这个就好了
怎样才能发一个数组呢?麻烦大家帮我改改!
发一个字节是可以的代码如下:import java.net.*;
import java.io.*;
public class TXClient {
public static void main(String[] args)
{
try
{ Socket echoClient = new Socket("172.23.163.196",9000);
DataOutputStream out=new DataOutputStream(echoClient.getOutputStream()); BufferedReader in = new BufferedReader(new InputStreamReader(echoClient.getInputStream())); String serverOutput;
BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in));
{
//*************************************************************************
//发送
byte ss=-0x36;
out.writeByte(ss);
//*************************************************************************
serverOutput = in.readLine();
}
out.close();
in.close();
echoClient.close();
System.out.println("test...");
}
catch(UnknownHostException e)
{
System.err.println("连接错误");
System.exit(1);
}
catch(IOException e)
{
System.err.println("I/0 error:" + e.getMessage());
System.exit(1);
}
}}
BufferedReader in = new BufferedReader(new InputStreamReader(new DataInputStream(echoClient.getInputStream())));