Java编程笔记之网络编程1

1.什么是计算机网络

       把分布在不同地理区域内的计算机与专门的外部设备用通信联络连接在一起,组成一个功能强的,规模大的网络系统,可以方便的传输信息,共享数据。

2.常见的网络编程方式

ISAPICGIWinInetWinsock、 

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.

创建 socket;
打开连接到 socket 的输入 / 输出流;
按照一定的协议对 socket 进行读 / 写操作;
关闭 socket;


服务端
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();

        }

    }

}













评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值