网络编程(二)

客户端
import java.net.Socket;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.InputStreamReader;
import java.io.BufferedReader;
//三次握手原理:客户端发送出去的内容会得到服务器端的响应
public class Client{//客户端先输出信息(写:以字符数组发送出去)再获取服务端响应信息(读:通过字符串输入流)
    public static void main(String []args){
        try{
            Socket s=new Socket("127.0.0.1",8888);
            InputStream in=s.getInputStream();//得到字节输入流对象
            OutputStream out=s.getOutputStream();//得到字节输出流对象
            //给服务器端写内容(请求)
            String fu=System.getProperty("line.separator");
            String str="中华人民共和国"+fu; 
            byte []bs=str.getBytes();//将字符串转换成字节数组
            out.write(bs);//通过输出流把字符串信息发送出去

            //得到服务器响应(接收服务器上的信息,用字符串输入流Buffered,(需要)这样用户才可以看懂)
            InputStreamReader read=new InputStreamReader(in);
            BufferedReader br=new BufferedReader(read);
            String message=br.readLine();
            System.out.println(message);
            in.close();
            out.close();
            s.close();
        }catch(Exception ex){
            System.out.println(ex.getMessage());
        }
    }
}
服务端
import java.net.ServerSocket;
import java.net.Socket;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.InputStreamReader;
import java.io.BufferedReader;
public class Server{//服务端先接收客户端信息:字符串输入流(读),再响应客户端信息:通过字符数组写,发送出去信息(写)
    public static void main(String []args){
        try{
            //创建Socket服务器对象
            ServerSocket ss=new ServerSocket(8888);
            Socket s=ss.accept();//当请求到来的时候,就是一个Socket
            InputStream in=s.getInputStream();//获取此套接字的输入流
            OutputStream out=s.getOutputStream();//获取此套接字的输出流

            //服务器通过字符串输入流获取客户端信息
            //创建一个字节数组,每次从输入流中获取大小为1024个字节
            //byte []arr=new byte[1024];
            //int len=in.read(arr);
            //String message=new String(arr,0,len);
            //System.out.println(message);

            InputStreamReader read=new InputStreamReader(in);
            BufferedReader br=new BufferedReader(read);
            String message=br.readLine();
            System.out.println(message);

            //服务器输出信息代码:通过输出流给对方客户端(响应客户顿),
            String str="万岁。。。";
            byte []bs=str.getBytes();//将字符创转换成字节数组
            out.write(bs);

            in.close();
            out.close();
        }catch(Exception ex){
            System.out.println(ex.getMessage());
            ex.printStackTrace();
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值