线程同步、网络部分

//博主,太懒了,并没有提供范例程序

 

7、线程同步

(1)概念:线程同步要求同一时间,只能有一个线程访问该代码。

(2)实现方式:

<1>同步代码块:synchronized(同步对象){}

<2>同步方法:public synchronized 返回值类型 方法名(){}

8、线程通信:

(1)概念:指线程之间进行信息的交互

(2)常用方法:

<1>wait(): 将线程进入等待状态

<2>notify(): 唤醒因 wait()方法而暂停的线程,随机唤醒一个

<3>notifyAll(): 唤醒等待线程

注:三个方法要定义在同步方法或同步代码块中

 

1、网络命令:

1ipconfig 获取IP地址

2)测试网络是否联通:ping ip地址

自己地址测试:ping 127.0.0.1

网络机测试: ping 对方IP地址

2、socket(“套接字”):用于进行数据的网络传输

工作原理:

发送方:<1>创建socket<2>将发送的数据给socket

接收方:<1>创建socket<2>随时等待接收数据

TCP:用来实现双向安全连接网络通信

3、实现步骤:

(1)客户端:

<1>创建socket对象,指定服务器地址和端口号

Socket s = new Scoket("服务器地址",端口号);

<2>通过socket获取输入输出流

OutputStream out= s.getOutputStream();

InputStream is = s.getInputStream();

<3>如果获取的是字符串,需要进行字符转换

InputStreamReader isr = new InputStreamReader(is);

BufferedReader br = new BufferedReader(isr);

<4>关流

逆序关闭

(2)服务器端:

<1>创建ServerSocket,只指定端口号

ServerSocket server= new ServerSocket(端口号);

<2>获取Socket,接收数据

Socket s = server.accept();

<3>获取输入输出流

<4>关闭流(逆序)

 

4、Socket传递对象

注意事项:

(1)创建的实体类要实现Serializable接口

(2)传递对象时使用的类不同

发送对象:

OutputStream os=socket.getOutputStream();

ObjectOutputStream oos = new ObjectOutputStream(os);

oos.writeObject(对象名);

接收对象

InputStream is=socket.getInputStream();

ObjectInputStream ois = new ObjectInputStream(is);

ois.readObject();//读取对象进行强转

3)关流

原文地址:https://www.cnblogs.com/letben/p/5185480.html