五、网络编程

一、网络概述

二、TCP程序

一、ServerSocket

1、用于创建服务器,创建完毕后会绑定一个端口号,然后此服务器会等待客户端连接 。每连接一个客户端,服务器就会得到一个新的Socket对象,用于跟客户端进行通信。

2、常用构造方法

ServerSocket(int port);
用于创建一个基于TCP/IP协议的服务器,并绑定z指定端口号
【注意】port范围:0-65535(建议1025-65535)

3、常用方法

Socket accept();
等待客户端连接 ,此方法会导致线程的阻塞 ,直到一个新的客户端连接成功,return Socket对象后,线程再继续执行。
void close()
释放占用的端口号,关闭服务器

二、Socket

1、是两台计算机之间t通信的断点,是网络驱动提供给应用程序编程的一种接口、一套标准、一种机制。

2、构造方法

Socket (String ip,int port)
创建一个套接字 并连接指定ip和端口号的服务器

3、常用方法

1、OutputStream getOutputStream()
		返回的是  指向通信的另一端点的输出流
2、InputStream getInputStream()
		返回的是  指向通信的另一端点的输入流
3、void close()
		关闭套接字
【注意】 获取输入输出流的操作是相对的。

三、源码

  1. 服务器
	//服务器
	public class Server {
    /*
    *   Tcp网络编程  服务器
     */
    public static void main(String[] args) throws IOException {
        //1、搭建服务器
        ServerSocket server=new ServerSocket(55565);
        System.out.println("服务器启动完毕!");
        //2、等待客户端连接
        Socket socket=server.accept();
        //客户端与服务器连接:
        // Socket socket1=new Socket("127.0.0.1",55565);
        System.out.println("一个客户端连接了");
        
        OutputStream os=socket.getOutputStream();
        PrintStream ps=new PrintStream(os);
        ps.println("欢迎你连接服务器!");
    }
}
  1. 客户端
	//客户端
	public class Client {
    public static void main(String[] args) throws IOException {
        Socket socket=new Socket("127.0.0.1",55565);
        InputStream is=socket.getInputStream();
        BufferedReader br=new BufferedReader(new InputStreamReader(is));
        String text=br.readLine();
        System.out.println("客户端接到消息:"+text);
    }
}
  1. 运行结果

1、服务器启动,等待客户端连接
在这里插入图片描述
2、执行客户端源码,与服务器进行连接,并接收服务器发送过来的消息。
在这里插入图片描述
在这里插入图片描述

4、注意

服务器和客户端只能一方发送一方接收,无法同时发送和同时接收。

三、在服务器中加入多线程

四、网络中不同形式数据的传输

1、String

	写数据
	br=new BufferedReader(new InputStreamReader(is));
	bw.write("0");
	bw.newLine();
	bw.flush();
	读数据
	br=new BufferedReader(new InputStreamReader(is));
	String result=br.readLine();

2、int boolean double等基本数据类型

	写数据
	dos=new DataOutputStream(os);
	dos.writeInt(0);
	dos.flush();
	读数据
	is=socket.getInputStream();
	dis = new DataInputStream(is);
	int result=dis.readInt();

3、对象

	读文件
	ois=new ObjectInputStream(is);
	Express express=(Express)ois.readObject();
	写文件
	Express express=m.findByNumber(number);
	oos=new ObjectOutputStream(os);
	//将邮件对象(邮件未找到时返回null)返回客户端
	oos.writeObject(express);
	oos.flush();

五、任务源码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值