计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。
数据交换——通信
javaWeb:网页编程B/S
网络编程:TCP/IPC/S
ip地址:InetAddress
1//查询本机地址2InetAddressip1=InetAddress.getByName("127.0.0.1");3InetAddressip2=InetAddress.getByName("loaclhost");4InetAddressip3=InetAddress.getLocalHost();56//查询网站地址7InetAddressip4=InetAddress.getByName("www.baiu.com");8//四个get方法9ip4.getHostAddress();
端口表示计算机上的一个程序的进程
1#查看所有端口2netstat-ano3#查看具体端口4netstat-ano|findstr"5900"5#查看具体端口的进程6tasklist|finstr"8696"
1InetSocketAddressport1=newInetSocketAddress("127.0.0.1",8080);2InetSocketAddressport2=newInetSocketAddress("localhost");34port1.getAddress();5port1.getHostName();6port1.getPort();
协议:约定
网络通信协议:速率、传输码率、代码结构、传输控制等
问题:非常的复杂(通信工程)
大事化小:分层
TCP/IP协议簇:实际上是一组协议
出名协议:
TCP和UDP对比
1至少三次才能保证稳定链接2A:你瞅啥?3B:瞅你咋地?4A:干一场?!567A:我要走了!8B:你真的要走了吗?9B:你真的真要走了吗?10A:我真的要走了!
UDP:发短信
客户端
1Socketsocket=newSocket(InetAddress.getByName("127.0.0.1"),9999);1OutputStreamos=socket.getOutputStream();1FileInputStreamfis=newFileInputStream(newFile("name.file"));1byte[]buffer=newbyte[1024];2intlen;3while((len=fis.read(buffer))!=-1)4{5os.write(buffer,0,len);6}1socket.shutdownOutput();1InputStreamis=socket.getInputStream();2ByteArrayOutputStreambaos=newByteArrayOutputStream();3byte[]buffer2=newbyte[1024];4intlen2;5while((len2=is.read(buffer2))!=-1)6{7baos.write(buffer2,0,len2);8}9System.out.println(baos.toString());1011baos.close();12is.close();13fis.close();14os.close();15socket.close();
服务器
1ServerSocketserverSocket=newServerSocket(9999);1Socketsocket=serverSocket.accept();1InputStreamis=socket.getInputStream();1FileOutputStreamfos=newFileOutputStream(newFile("Receive.png"));2byte[]buffer=newbyte[1024];3intlen;4while((len=is.read(buffer))!=-1)5{6fos.write(buffer,0,len);7}1OutputStreamos=socket.getOutputStream();2os.write("接收完毕,可关闭连接.".getBytes());34os.close();5fos.close();6is.close();7socket.close();8serverSocket.close();1.5UDP客户发送端(不需要连接服务器)
1//建立Socket2DatagramSocketsocket=newDatagramSocket();34//获取控制台输入内容5BufferedReaderreader=newBufferedReader(newInputStreamReader(System.in));6//循环输入7while(true)8{9Stringdata=reader.readLine();10byte[]datas=data.getBytes();11intport=6666;12//建立包13DatagramPacketpacket=newDatagramPacket(datas,0,datas.length,newInetSocketAddress("127.0.0.1",port));14//发送包15socket.send(packet);16//断开连接条件17if(data.equals("bye"))18{19break;20}21}22//关闭资源23socket.close();
客户接受端
1//开放端口2DatagramSocketsocket=newDatagramSocket(6666);3//循环接收4while(true)5{6//准备接收packet7byte[]container=newbyte[1024];8DatagramPacketpacket=newDatagramPacket(container,0,container.length);9socket.receive(packet);1011//写出包12byte[]datas=packet.getData();13StringReceiveData=newString(datas,0,datas.length);14System.out.println(ReceiveData);1516//断开连接条件17if(ReceiveData.equals("bye"))18{19break;20}21}22//断开资源23socket.close();