服务端

1.步骤:

创建serversocket,绑定监听端口

2.创建accept()方法,用来监听客户端请求.

3.建立连接后可以通过输入流来读取客户端的信息

4.通过输出流来向客户端发送信息

5.关闭相关资源


客户端:

创建socket对象,指明需要连接的服务器的地址和端口号

建立连接后,通过输出流向服务器端发送请求信息

通过输入流获取服务器返回的信息

关闭相关资源:


相关代码如下:

public class Client {
    public static void main(String[] args) throws UnknownHostException, IOException {


//创建Socket,制定服务器端的地址和端口
Socket cc=new Socket("localhost",8888);
//获取输出流,向服务器端发送信息
OutputStream out=cc.getOutputStream();//字节输出流
//将输出流包装成打印流
PrintWriter pw=new PrintWriter(out);

pw.write("账号是:admin ,密码是123456");
pw.flush();
cc.shutdownOutput();
cc.close();
//关闭资源
pw.close();

}


public class Server {
/**
* 基于tcp 协议的socket通信,实现用户登录
* @throws IOException
*/
public static void main(String[] args) throws IOException {
//创建一个serversocket实例,并绑定指定的端口
ServerSocket serverSocket=new ServerSocket(8888);
//正式开始侦听
System.out.println("服务端启动,等待客户端链接*******************");
Socket ned=serverSocket.accept();
//3.实现数据的交互,获取客户端的登录信息,首先要获取字节输入流
InputStream red=ned.getInputStream();
//为提高读取的性能,要把他变成字符串的输入流
InputStreamReader read=new InputStreamReader(red);
//为字符流添加缓冲
BufferedReader bufferedReader=new BufferedReader(read);
//
String mm=null;
while ((mm=bufferedReader.readLine())!=null) {
System.out.println("我是服务器,客户端说:"+mm);

}
//关闭输入流
ned.shutdownInput();
//关闭相关的资源,
bufferedReader.close();
read.close();
red.close();
serverSocket.close();
ned.close();


}