第一种
注意两份代码要放到不同的Java文件main中执行,并且要运行server端,再开client
server
//建立连接
ServerSocket ss = new ServerSocket(8021); //这一句就已经建立了服务端
System.out.println("Connect successful.");
Socket server = ss.accept(); //转到socket类型为了下面的输入输出流
InputStream isInputStream = server.getInputStream();
ByteArrayOutputStream baos = new ByteArrayOutputStream(); //内存输出流
int i; //将读入的暂时存到内存中
while ((i=isInputStream.read())!=-1) { //将读到的写入
baos.write(i);
}
System.out.println("Server Duan accept:"+baos.toString()); //将内存中的显示处理出来
isInputStream.close();
baos.close();
client
//建立连接 客户段
Socket client = new Socket(InetAddress.getByName("192.168.11.170"),8065); //标明要对接的主机号和端口
//前面的为ip 后面为端口,都那口可以自定义
//这一句已经连接到对应服务端口
Scanner reader = new Scanner(System.in);
System.out.println("already connect to server,input your content:");
String mString = reader.nextLine(); //输入
OutputStream os = client.getOutputStream(); //输出流建立
os.write(mString.getBytes()); //写入流
os.close();
第二种 可以实现在控制台持续对话,可以试着聊聊天?
server 2
//println 自动刷新
ServerSocket ss = new ServerSocket(8086);
System.out.println("Server is Listening.");
while (true) {
Socket server = ss.accept();
new Thread(new Runnable() {
@Override
public void run() {
try { //读入转为buffer
InputStream is = server.getInputStream();
BufferedReader brReader = new BufferedReader(new InputStreamReader(is));
OutputStream os = server.getOutputStream(); //转到缓冲
PrintWriter pw = new PrintWriter(os,true); //自动刷新输出流的内容
System.out.println("receive :"+brReader.readLine());
Scanner reader = new Scanner(System.in);
System.out.println("input your words:");
String s1 = reader.nextLine();
pw.println(s1);
server.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}).start();
}
client 2
//println 自动刷新
while (true) {
Socket client = new Socket(InetAddress.getByName(""),8086); //要发送的对象地址和程序端口
System.out.println("Linked successful");
OutputStream outputStream = client.getOutputStream(); //输出流
PrintWriter pwWriter = new PrintWriter(outputStream,true);
InputStream inputStream = client.getInputStream(); //输入流
BufferedReader bfReader = new BufferedReader(new InputStreamReader(inputStream));
Scanner reader = new Scanner(System.in);
System.out.println("send:");
String s2 = reader.nextLine();
pwWriter.println(s2);
System.out.println("receive:"+bfReader.readLine());
client.close();
}