DatagramSocket,datagramsocket

DatagramSocket,datagramsocket

程序员常说的底层是指什么?

我们现在开发软件的时候,有多种库或者说是组件可引用,这样就会提高软件开发的效率,当然也会降低开发的难度。所谓的“底层开发”,一般指的是“原生开发”,也就是不用或者少用别人大量封装的代码库来进行的软件开发!比如对于WINDOWS应用程序的开发来说,用Visual C 或者C#之类的进行开发,它们就已经对系统的具体实现,进行了大量的封装,对于开发者来说,是透明的,不知道它的具体执行过程是怎么样的。

但如果使用WINDOWS系统提供的原始API进行这样的开发,那你就要掌握系统的具体执行过程,要知道它的原理,这样才能进行软件的开发。而这是提升一个人系统开发能力的最佳途径!所以,作为专业的软件开发人员,应该从所谓的“底层”去了解系统是如何运行的,这样,我们在进行软件开发的时候,就可以利用起来,对代码进行改进、优化,提高软件的运行效率与健壮性。

Java开发需要哪些TCP/IP知识?

Java开发需要哪些TCP/IP知识,可能题主是想做一些Java网络编程方面的开发。本人做过一些网络编程的项目,对网络编程有比较深入的了解。个人感觉可能需要以下几方面的知识:第一、Java网络编程的基础。TCP相关的Socket、ServerSocket,UDP相关的DatagramSocket的使用,这是基础。

通过这些的使用可以对Java网络编程有基础的了解。第二、IP地址、端口号的基础知识。了解什么是IP地址,什么是端口号。既然做网络编程开发,就需要知道IP地址,知道端口号。服务端都有自己的监听端口。客户端连接服务端需要知道服务端的IP地址和端口号。第三、基本的命令使用。例如IP地址查看命令,端口对应TCP连接情况查看命令。

ifconfig(Linux)\ipconfig(windows)。端口号查看netstat等。telnet(windows)检测端口监听是否成功。ping检测对端IP地址是否通。第四、防火墙的开关和简单配置。很多情况下会发现明明对端IP地址是可以ping通,但是就是连接不上,这个时候很有可能是防火墙配置问题。

这个时候可以关闭防火墙,配置简单的路由规则,或者清空防火墙的理由规则。第五、TCP/IP协议的基础知识。了解TCP/IP协议之间的不同层次之间是如何工作的,有助于理解消息的传送。了解IP协议、TCP协议格式。了解TCP协议的三次握手和四次握手。了解网络连接的不同状态CLOSE_WAIT、LISTEN等。

第六、IO只是基础,NIO使用采用更广泛。官方认为NIO为新IO,但很多人将其理解为Non-block。大部分网络编程会使用netty或者mina框架来代替使用jdk的nio编程。第七、心跳的使用。大部分网络连接通过心跳来检测连接的状态,这个也是一个基础知识。第八、netty框架的使用。学会使用netty框架。

netty框架使用更为广泛。第九、拆包和粘包的使用。数据从一台机器发送另一台机器,中间需要使用拆包和粘包来完整的接收和处理业务消息。第十、编解码的使用。可以使用多种编解码技术。例如protobuf、avro、thrift等等等,也可以自定义。还有以下大小端的概念,还有数据类型之间的转换,例如int与byte数组互转,long与byte数组的互转等等。

第十一、抓包工具的使用。通过抓包工具可以分析不同的协议,像HTTP、SSL、TCP等等。第十二、线程池的使用。第十三、流量控制。像netty自带流量控制功能。第十四、网络编程让人头疼的打开文件句柄数过多问题的解决。......总之,网络编程的知识不止这些,网络编程时互联网的基础,只是我们大部分人做应用开发,或者是框架已经将这些内容进行了封装,让我们感觉不到它的存在。

  • 姓名:
  • 专业:
  • 层次:
  • 电话:
  • 微信:
  • 备注:
文章标题:DatagramSocket,datagramsocket
本文地址:http://vmwizqzk.55jiaoyu.com/show-734307.html
本文由合作方发布,不代表展全思梦立场,转载联系作者并注明出处:展全思梦

热门文档

推荐文档