网络编程1.0
网络编程有两个问题:
1.如何准确的定位网络上一台主机,并定位主机上的应用
2.找到主机后如何进行数据传输
解决:1.使用IP和端口;
IP:唯一的标识Intermet上的计算机 在java中使用InetAddress类代表电脑的IP地址
端口:每个进程都有一个端口:列QQ算一个进程,系统会给其一个端口
域名:IP地址太难记衍生出域名,列:www.baidu.com电脑会自动去匹配ip地址
2.提供网络通信协议:TCP/IP参考模型(把网络同行协议分成了几个部分,上层可以向下层传输数据)主要看中间这列
网络通信协议TCP和UDP区别:
TCP:在传输前建立数据传输通道,安全,相较于可靠,采用三次握手的方式(去——回——去),可进行大量数据传输,速度慢;
UDP:不需要建立通道,不是很安全,每个数据大小不得超过64k,速度快;
二 如何实现网络编程
如何实列InetAddress:两个方法:getByName(String host)//输入域名或者直接给ip地址;
getLocalHost()//返回本机ip地址
客户端:
①先创建Socket对象,指明服务器端的ip和端口;
②socket对象调用getOutputStream()方法指出输出流用于输出;
③写出数据操作用write;
④流关闭;
服务端:
①创建服务端Serversocket,指明端口号,要和客户端一样;
②创建对象调用accept方法返回一个Socket型对象;
③用socket对象指出输入流读取数据
④读取操作
⑤流关闭
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· 因为Apifox不支持离线,我果断选择了Apipost!