java利用Socket在控制台互发信息

2018-12-14  本文已影响0人  Cholechow

在上一篇文章里面已经提到过socket的一些基本原理了,这里我就不一一解释了,大家感到疑惑的话可以去我的主页查看

好了,我们现在进入正题,要想发送信息,肯定得有一个服务器和一个客户端

首先我们来看服务器端的代码:

package 网络聊天;

import java.io.BufferedReader;

import java.io.InputStreamReader;

import java.io.PrintWriter;

import java.net.ServerSocket;

import java.net.Socket;

public class L2 {

public L2(){try{

ServerSocket ss=new ServerSocket(9999);//设置服务器的端口

System.out.println("服务器正在监听");

Socket s=ss.accept();//只有服务器被客户连接之后,才会执行后面的语句

InputStreamReader isr=new InputStreamReader(s.getInputStream());//接收客户端的数据

BufferedReader br=new BufferedReader(isr);//存入缓存

PrintWriter pw=new PrintWriter(s.getOutputStream(),true);//向客户端传数据

InputStreamReader isr2=new InputStreamReader(System.in);//向客户端发送的数据是啥,由控制台输入

BufferedReader br2=new BufferedReader(isr2);//将控制台输入的数据放入缓存

while(true){

String xinxi=br.readLine();//把缓存的数据读出来

System.out.println("客户端说:"+xinxi);//打印出来

System.out.println("我说:");

String fasong=br2.readLine();//把缓存的数据读出来

pw.println(fasong);//传给客户端

}

}catch(Exception e){

}}

public static void main(String args[]){

L2 a=new L2();

}

}

注释比较全面,笔者就不过多解释啦

然后是客户端的代码:

package 网络聊天;

import java.io.BufferedReader;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.io.PrintWriter;

import java.net.Socket;

public class L2_1 {

public static void main(String[] args){

L2_1 a=new L2_1();

}

public L2_1(){

try{

Socket s=new Socket("127.0.0.1",9999);//进入端口,前面是服务器的Ip,自己电脑一般是127.0.0.1,后面的是端口,与服务器对应

PrintWriter pw=new PrintWriter(s.getOutputStream(),true);//IO流发送

InputStreamReader isr=new InputStreamReader(System.in);//从控制台输入数据

BufferedReader br=new BufferedReader(isr);//存入缓存区

InputStream isr2=s.getInputStream();//读取数据

BufferedReader br2=new BufferedReader(new InputStreamReader(isr2));//存到缓存区

while(true){

System.out.println("我发言: ");

String fasong=br.readLine();//获取数据

pw.println(fasong);

String jieshou=br2.readLine();

System.out.println("服务器说:"+jieshou);//输出数据

}

}catch(Exception e){

}

}

}

这样一个基本的架构我们就已经弄好啦!

然后就开始来验证我们的功能啦

首先我们运行服务器的代码,将服务器建立起来,控制台输出如下:

这个就表示已经启动成功啦

ps: 当我们运行客服端代码的时候,控制台会切换到客户端去,这个时候想看服务器的控制台点击红色箭头指示下拉箭头就可以啦!

然后我们运行客户端的代码,与其进行连接,控制台输出如下:

这个时候我们在控制台输入我们想说的话,回车,然后切换到服务器的控制台:

可以看到我们说的话已经传到服务器啦,这个时候我们再在服务器控制台输入我们想说的话,回车,然后切换到客户端的控制台:

可以看到服务器的话客户端也收到啦,这就说明我们已经成功了

好啦,这次就到这里啦,有问题可以和我留言哦!

邮箱:2321591758@qq.com

其他博客的链接:

Github个人网站    知乎    简书

欢迎各位访问哦,这次就到这里啦!

上一篇下一篇

猜你喜欢

热点阅读