Java编程笔记之网络编程1

原创 2014年11月07日 00:33:33

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();

        }

    }

}













《UNIX网络编程 卷1》 笔记: 高级I/O函数

本节我们关注称为“高级I/O”的各个函数和技术。 首先是在I/O操作上设置超时。在涉及套接字的I/O操作上设置超时的方法有以下3种; 1. 调用alarm函数,在定时时间超时产生SIGALRM信号...
  • woay2008
  • woay2008
  • 2017-05-26 17:56:20
  • 4013

学习《UNIX网络编程卷一》笔记

学习《UNIX网络编程卷一》笔记
  • zhang_yin_liang
  • zhang_yin_liang
  • 2017-04-11 16:11:35
  • 597

Unix网络编程卷一笔记

1.connect函数调用会激发TCP三路握手协议,调用失败返回以下三种情况: 1.TCP客户端没有收到SYN分节,返回ETIMEOUT错误。如果发送一个SYN分节,等待6s没有响应,再发送一个,等待...
  • damenhanter
  • damenhanter
  • 2016-07-12 23:01:33
  • 1366

网络编程学习笔记一

本学期开始学习网络编程,第一个任务是学时TCP/IP客户端服务器的搭建 用C写服务器端(Server.cpp) #pragma comment(lib, "ws2_32.lib")//预编译 #inc...
  • letianxf
  • letianxf
  • 2017-02-22 21:28:51
  • 305

java编程基础笔记

  • 2011年10月28日 21:11
  • 175KB
  • 下载

unix网络编程笔记(三)

unix网络编程 第五章笔记
  • sunny_ss12
  • sunny_ss12
  • 2016-04-08 16:37:26
  • 1534

Java网络编程笔记

URI,URL,URN的区别 URI(Uniform-Resource-Identifier):统一资源标识符。以特定的语法标识一个资源的字符串,所标识的资源可以是服务器上的文件,也可以是一个邮件...
  • Double_apple112
  • Double_apple112
  • 2016-05-24 16:37:44
  • 173

java网络编程pdf

  • 2017年11月14日 10:05
  • 62.52MB
  • 下载

《JAVA网络编程》阅读笔记(三)

Java的I/O建立于流上。输入流读取数据;输出流写入数据。所有的输出流/输入流都有相同的基本方法来写入/读取数据。               过滤器流可以链接到输入流或输出流上。过滤器可以在读写时...
  • zd836614437
  • zd836614437
  • 2015-08-29 22:20:38
  • 178

java网络编程精解学习笔记(第二章 socket详解)

1 构造socket socket有几个重载的构造方法: Socket() Socket(InetAddress address, int port) //第一个参数表示主机的IP地址 Soc...
  • cg3410
  • cg3410
  • 2017-01-06 20:06:05
  • 267
收藏助手
不良信息举报
您举报文章:Java编程笔记之网络编程1
举报原因:
原因补充:

(最多只允许输入30个字)