1.什么是计算机网络
把分布在不同地理区域内的计算机与专门的外部设备用通信联络连接在一起,组成一个功能强的,规模大的网络系统,可以方便的传输信息,共享数据。
2.常见的网络编程方式
ISAPI、CGI、WinInet、Winsock、
1) ISAPI主要是开发基于浏览器客户端与服务器端程序。效率比CGI方式高,而且也扩展了CGI没有的一些功能。(基于TCP/IP模型中的应用层)
2) CGI主要是开发基于浏览器客户端与服务器端程序。(基于TCP/IP模型中的应用层)
3) WinInet主要是开发客户端程序。(基于TCP/IP模型中的应用层)
4) Winsock主要是基于socket来开发客户端与服务器端程序。(基于TCP/IP模型中的各层)要想开发低层协议的程序的话就要了解协议的报文格式。
3.TCP/IP:传输控制协议/网际协议
四层:应用层(应用层,表示层,会话层),传输层,互联网层,网络接口层(物理层,数据链路层)
什么是三次握手:
(1)客户端发送一个带SYN标志的TCP报文到服务器。这是三次握手过程中的报文1。
(2) 服务器端回应客户端的,这是三次握手中的第2个报文,这个报文同时带ACK标志和SYN标志。因此它表示对刚才客户端SYN报文的回应;同时又标志SYN给客户端,询问客户端是否准备好进行数据通讯。
(3) 客户必须再次回应服务段一个ACK报文,这是报文段3
4.IP地址:32位二进制长度表示
5.Socket(套接字):两个应用程序之间传输数据,每一端成为一个Socket,通常实现Clinet-server通信,建立连接时所需的寻址信息为远程计算机的IP地址和端口号。
代码实例---网络编程步骤
1.
服务端
class TcpServer{
public static void main(String args[]){
ServerSocket server=new ServerSocket(8888);//创建端口号
while(true){
Socket s=server.accept();
BufferedWriter bw = new BufferedWriter ( newOutputStreamWriter(s1.getOutputStream()));//创建客户端输入输出流
bw.write("nihaoa");
bw.close();
s.close();
}
}
}
服务器
public class TCPClient { //TCP Client
public staticvoid main(String[] args) {
try {
Sockets = new Socket("127.0.0.1", 8888);
BufferedReaderbr = new BufferedReader( new InputStreamReader(s.getInputStream()));
Stringstr = br.readLine();
System.out.println("服务器说:" + str);
s.close();
} catch (UnknownHostExceptione) {
System.err.println("服务器连接失败!");
e.printStackTrace();
} catch (IOExceptione) {
e.printStackTrace();
}
}
}