java中网络编程,java中网络编程的步骤
Yyds干货库存
@[目录]
第一,前言上一篇文章记录了Java中一切事物的ip和端口的解释记录。
应记录以下内容:
第二,通信协议是一个协议。大家可以用约定好的协议互相交流。
H4 TCP/IP协议套件:/h4
TCP是用于用户传输(电话呼叫)的协议
特点:稳定,三向握手,4波。(去百度哈)UDP是用户包协议(发短信)。
DDOS攻击:洪水攻击。区别:需要先连接TCP,不连接也可以发送UDP。
三、TCP实时通信的思路:
font color=" Crimson " Client:/font
1,你需要先连接服务器:使用Socket。
2.发送消息
Font color="Crimson "服务器:/font
1.建立服务的端口信息:ServerSocket
2.等待用户连接。
3.接受用户的消息。
开始编写代码:
Demo01.java是客户。
Demo02.java是服务器。
3.1.demo02.java服务器的ServerSocket类:在服务器上打开一个端口,等待访问。如下所示:
server socket server socket=new server socket(3245);Socket类代表一个客户端套接字。等待来自客户端的消息,如下所示:
socket socket=server socket . accept();InputStream类标记那些从不同数据源生成输入的类。阅读客户端的消息,如下所示:
is=socket . getinputstream();3.1.2使用管道流ByteArrayOutputStream写入字节类型数据的类相当于一个中间缓冲层,该类写入文件等其他输出流。它对字节进行操作,属于内存操作流。
ByteArrayOutputStream baos=new ByteArrayOutputStream();遍历:
字节类型
byte[]buffer=新字节[1024];int len1while((len1=is.read(buffer))!=-1){ baos.write(buffer,0,len 1);}输出如下所示:
system . out . println(baos . tostring());3.2.demo01.java客户端需要知道服务器的地址。
使用前面的InetAddress类:
inet address server IP=inet address . get byname( 127 . 0 . 0 . 1 );int port=3245
类套接字客户端套接字。代码如下:
创建套接字链接
Socket Socket=new Socket(serverIP,port);向IO流发送消息。
OutputStream类:fileoutputstream
output stream OS=socket . get output stream();OS . write(‘你好,我是一只有抱负的猪’。getBytes());基本版完成了。让我们来看看。
3.3、效果图注意,先启动服务器,再启动客户端!
第四,高级版改变范围,写异常处理,及时关闭资源。
ServerSocket ServerSocket=nullSocket socket=nullInputStream为=nullByteArrayOutputStream baos=null;分段封闭管道,注意顺序。
规则,谁先回答,谁先断线。
七。附源代码demo01.java客户端源代码:
包装tcp02导入Java . io . io exception;导入Java . io . inputstream;导入Java . io . output stream;导入Java . net . inet address;导入Java . net . socket;导入Java . net . unknownhostexception;//客户端公共类demo 01 { public static void main(string[]args)抛出IO异常{ socket socket=nullOutputStream os=null//1.知道服务器的地址试试{ inet address server IP=inet address . get byname( 127 . 0 . 0 . 1 );int port=3245//2.创建一个Socket link Socket=new Socket(server IP,port);//3.发送消息IO stream OS=socket . get output stream();OS . write(‘你好,我是一只有抱负的猪’。getBytes());} catch(Exception e){ e . printstacktrace();}最后{ if(os!=null){ try { OS . close();} catch(io exception e){ e . printstacktrace();} } if(socket!=null){ try { socket . close();} catch(io exception e){ e . printstacktrace();}}} }}demo02.java服务器源代码:
包装tcp02导入Java。io。bytearrayoutputstream导入Java。io。io异常;导入Java。io。inputstream导入Java。网。服务器套接字;导入Java。网。插座;//服务端public class demo 02 { public static void main(String[]args)抛出io异常{服务器套接字服务器套接字=空;Socket socket=nullInputStream为=nullByteArrayOutputStream baos=null;尝试{服务器套接字=新服务器套接字(3245);//等待客户端的消息套接字=服务器套接字。接受();//读取客户端的消息is=套接字。getinputstream();//管道流baos=new ByteArrayOutputStream();字节[]缓冲区=新字节[1024];int len 1 while((len 1=is . read(buffer))!=-1){ baos.write(buffer,0,len 1);//String msg=new String(buffer,0,len 1);//系统。出去。println(msg);}系统。出去。println(baos。tostring());} catch(io异常e){ e . printstacktrace();}最后{如果(baos!=null){ try { baos。close();} catch(io异常e){ e . printstacktrace();} }如果(是!=null){ try { is。close();} catch(io异常e){ e . printstacktrace();} } if(socket!=null){ try { socket。close();} catch(io异常e){ e . printstacktrace();} } if(ServerSocket!=null){尝试{服务器套接字。close();} catch(io异常e){ e . printstacktrace();} } } }}六,后言下篇记录文件传输心得详解。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。