------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
客户端给服务端发送消息的步骤:
客户端-----------------------
1.创建客户端Scoket服务,并且指定要连接的主机和端口.
Scoket s=new Soket("192.168.1.100",10003);
2.为了发送数据,应该获取scoke流中的输出流
OutputStream os=s.getOutputStream();
ou.write("hello word".getByte());
服务端------------------------
1.建立服务端的socket服务,通过ServerScoket();并且监,通过听一个端口
ServerSocket ss=new ServerSocket (10003);
2.获取连接过来的客户端对象ServerScoket底下的accept对象,这个方法是阻塞式的,如果无对象则为wait状态
Socket s=ss.accept();
3.使用客户端对象,获取该对象的读取流,解析出数据打印出来
InputStream in=s.getInputStream();
byte[]buf=new byte[1024];
int length=in.read(buf);
System.out.println("ip:---"+s.getInetAddress().getHostAddress());
System.out.println(new String (buf,0,len));
s.close();//关闭客户端
ss.close();//关闭服务端
注意:在运行程序时候服务端得先运行,在运行客户端程序,否则客户端运行了连接不上服务端.
服务端给客户端反馈消息的步骤:
客户端----------------------
1.建立socket服务,指定要连接主机的端口
Socket s=new Socket("192.168.1.254",10004);
2.获取soket流中的输入流,将数据写到该流中,通过网络发送给服务端
OutputStream out=s.getOutputStream();
out.write("to:服务端".getBytes());
3.获取socket流中的输出流,将服务端反馈的数据获取到,并打印
InputStream in =s .getInputStream();
byte[]buf=new byte[1024];
int len=in.read(buf);
System.out.println(new String(buf,0,len));
4.关闭客户端资源
s.close();
----------------------服务端
ServerSocket ss=new ServerSocket(10004);
Socket s=ss.accept();
InputStream in=s.getInputStream();
byte[]buf=new byte[1024];
int length=in.read(buf);
System.out.println("ip:---"+s.getInetAddress().getHostAddress());
System.out.println(new String (buf,0,len));
OutputStream out=s.getOutputStream();//返回给客户端的信息
out.write("re:客户端");
s.close();
ss.close();