(完整word版)Java知识总结完整版,推荐文档 联系客服

发布时间 : 星期日 文章(完整word版)Java知识总结完整版,推荐文档更新完毕开始阅读42c9f84f148884868762caaedd3383c4ba4cb456

} }

class Consumer implements Runnable { LanZi lz = null;

Consumer(LanZi lz) {this.lz = lz;} public void run() {

for(int i=0;i<20;i++) { ManTou mt = lz.pop();

System.out.println(\消费了:\

try{Thread.sleep((int)(Math.random() * 1000));} catch (InterruptedException e){ e.printStackTrace();} } } }

wait与sleep

wait时别的线程可以访问锁定对象(调用wait方法的时候必须锁定该对象) sleep时别的线程也不可以访问锁定对象

第10章 网络编程

参考模型

OSI参考模型 TCP/IP参考模型

应用层 应用层 传输层 表示层 网络层 会话层 物理+数据链路传输层 层 网络层 数据链路层 物理层 IP(Internet Protocol)

TCP(transmission control protocol) UDP(user data protocol)

Socket(插座的意思)

两个Java应用程序可通过一个双向的网络通信连接实现数据交换,这个双向链路的一端称为一个Socket

Soclet通常用来实现client-server连接

java.net包中定义的两个类Socket和ServerSoclet,分别用来实现双向连接的client和server端

建立连接时所需要的寻址信息为远程基选集的IP地址和端口号(Port number) TCP端口UDP端口是分开的,每一个有65536个端口(建议使用1024以后的)

TCP Socket通信模型 Server Clicent ------------------------------------------------------------------------------ ServerSocket ss(port #) Socket s(host,port #) ss.accept() //等待连接 (Attempt to connect) --------------------------------------- Socket对象 OutputStream --------------------------------------- OutputStream InputStream --------------------------------------- InputStream socket.close() --------------------------------------- socket.close() import java.net.*; import java.io.*;

public class TCPServer {

public static void main(String[] args) throws Exception { ServerSocket ss = new ServerSocket(6666); while(true) {

Socket s = ss.accept(); DataInputStream dis = DataInputStream(s.getInputStream());

System.out.println(dis.readUTF());//阻塞的 dis.close(); s.close();

//System.out.println(\ } } }

import java.net.*; import java.io.*;

public class TCPClient{

public static void main(String[] args) throws Exception { Socket s = new Socket(\ OutputStream os = s.getOutputStream();

DataOutputStream dos = new DataOutputStream(os); dos.writeUTF(\

new

dos.flush(); dos.close(); s.close(); } }

import java.io.*; import java.net.*;

import java.applet.Applet; public class talkserver {

public static void main(String args[]) {

try {

ServerSocket server = null; try {

server = new ServerSocket(4700); }catch(Exception e) {

System.out.println(\ }

Socket socket = null; try {

socket = server.accept(); }catch(Exception e) {

System.out.println(\ }

String line; BufferedReader is = new BufferedReader(new InputStreamReader( socket.getInputStream()));

PrintWriter os = new PrintWriter(socket.getOutputStream()); BufferedReader sin = new BufferedReader(new InputStreamReader(System.in));

System.out.println(\ line = sin.readLine();

while (!line.equals(\ {

os.println(line); os.flush();

System.out.println(\

System.out.println(\

line = sin.readLine(); }

is.close(); os.close(); socket.close(); server.close(); }catch(Exception e) {

System.out.println(\ } } }

import java.io.*; import java.net.*;

public class talkclient {

public static void main(String args[]) {

try {

Socket socket = new Socket(\ BufferedReader sin = new BufferedReader(new InputStreamReader(System.in));

PrintWriter os = new PrintWriter(socket.getOutputStream()); BufferedReader is = new BufferedReader(new InputStreamReader( socket.getInputStream())); String readline;

readline = sin.readLine();

while (!readline.equals(\ {

os.println(readline); os.flush();

System.out.println(\

System.out.println(\ readline = sin.readLine(); }

os.close(); is.close(); socket.close(); }catch(Exception e) {

System.out.println(\ }