目前使用最广泛的网络协议是Internet上所使用的TCP/IP协议
网络编程的目的就是指直接或间接地通过网络协议与其他计算机进行通讯。网络编程中有两个主要的问题,一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输。在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可以唯一地确定Internet上的一台主机。而TCP层则提供面向应用的可靠的或非可靠的数据传输机制,这是网络编程的主要对象,一般不需要关心IP层是如何处理数据的。
1.2 网络的基本概念
IP地址: 标识计算机登网络设备的网路地址,由四个8位的二进制数组成,中间以小数点分隔。如: 166.111.136.3, 166.111.52.80
主机名: 网络地址的助记名,按照域名进行分级管理。 如 www.tsinghua.edu.cn www.fanso.com
端口号: 网络通信时同一机器上的不同进程的标识
服务类型(service): 网络的各种服务:
http, telnet, ftp, smtp
1.3两类传输协议:TCP;UDP
TCP 是 tranfer Control Protocol简称,是一种面向连接的保证可靠传输的协议。 通过tcp协议传输,得到的是一个顺序的无差错的数据流,发送方和接收方的成对的两个socket之间必须建立连接, 以便在TCP协议的基础上进行通信,当一个
socket(通常都是server socket) 等待建立连接时, 另一个socket可以要求进行连接, 一旦这两个socket连接起来,它们就可以进行双向数据传输,双方都可以进行发送或接收操作。
UDP 是user Datagram Protocol的简称, 是一种无连接的协议, 每个数据报都是一个独立的信息, 包括完整的源地址或目地地址,它在网络上以任何可能的路径传往目地地,到达目的地的时间以及内容的正确性都是不能被保证的。
ServerSocketserver = null;
try{
server = newServerSocket(4700);
}catch(IOExceptione){
System.out.println("Cannot listen to :" + e);
}
Socketsocket = null;
try{
socket = server.accept();
}catch(IOExceptione){
System.out.println("Error:" + e);
}
输入、输出流
PrintStreamos = new PrintStream(new BufferedOutputStreem(socket.getOutputStream()));
DataInputStreamis = new DataInputStream(socket.getInputStream());
PrintWriterout = new PrintWriter(socket.getOutStream(), true);
BufferedReaderin = new BufferedReader(new InputStreamReader(Socket.getInputStream()));