Android_Socket

来源:互联网 发布:生活网络信托基金产品 编辑:程序博客网 时间:2024/06/02 05:24
先来介绍下网络协议:
TCP/IP
Transmission Control Protocol传输控制协议
Internet Protocol 互联网协议
UDP
User Datagram Protocol 用户数据协议

连接协议:
分为:
面向连接协议: Connection OrientedProtocol
非连接协议: Connectionless Protocol

1).面向连接协议是指两台电脑在传输数据前,先会建立一个专属的连接。就如电信局的交换机会为打电话双方提供专属连接一样。
Internet上的面向连接协议就是 TCP/IP
特点:确认回应;分组序号;流量控制。
TCP/IP属于可靠性传输,适合不容许有传输错误的网络程序设计使用

2).非连接协议:无专属连接,无分组,容错,距离短,可同时对多台电脑进行数据传输
Internet上的非连接协议就是 UDP

TCP在网络通信上有极强的生命力,例如远程连接( Telnet)和文件传输( FTP )都需要不定长度的数据被可靠地传输。相比之下 UDP操作简单,而且仅需要较少的监护,因此通常用于局域网高可靠性的分散系统中 client/server 应用程序。


Socket是程序与网络间的一种接口,大部分网络应用程序都是点对点的,所谓点就是服务器端和客户端所执行的程序。 Socket是用来接收和传送分组的一个端点。

Java的 Socket 编程要用到 java.net 包,最常用的是net 包下的 6 个类: InetAddress( 互联网协议  (IP) 地址 ) 类, Socket( 套接字 ) 类, ServerSocket( 套接字服务器 )类, DatagramSocket( 发送和接收数据报包的套接字 )  类,DatagramPacket( 数据报包 ) 类, MulticastSocket( 多播数据报套接字类用于发送和接收 IP  多播包 ) 类,其中 InetAddress 、Socket 、 ServerSocket 类是属于 TCP 面向连接协议, DatagramSocket 、 DatagramPacket 和 MulticastSocket 类则属于 UDP非连接协议的传送类
socket通讯
服务端:
import java.net.*;
import java.io.*;
public class L13_2_1 {
public static void main(String[]agrs)
{
  L13_2_1 l3=newL13_2_1();
}
public L13_2_1()
{
  try{
  ServerSocketss=new ServerSocket(9999);
 System.out.println("复位器正在监听");
  Sockets=ss.accept();
  InputStreamReaderisr=new InputStreamReader(s.getInputStream());
  BufferedReaderbr=new BufferedReader(isr);
  PrintWriterpw=new PrintWriter(s.getOutputStream(),true);
  InputStreamReaderisr2=new InputStreamReader(System.in);
  BufferedReaderbr2=new BufferedReader(isr2);
  while(true)
  {
  Stringxinxi=br.readLine();
 System.out.println("客户端说:"+xinxi);
 System.out.println("我说:");
  Stringfasong=br2.readLine();
 pw.println(fasong);
  }
  }catch (Exceptione){}
}
}
客服端:
import java.net.*;
import java.io.*;
public class L13_2_2 {
public static void main(String[]agrs){
  L13_2_2 l4=newL13_2_2();
}
public L13_2_2()
{
  try{
  Socket s=newSocket("127.0.0.1",9999);
  PrintWriterpw=new PrintWriter(s.getOutputStream(),true);
  InputStreamReaderisr=new InputStreamReader (System.in);
  BufferedReaderbr=new BufferedReader(isr);
  InputStreamReaderisr2=new InputStreamReader(s.getInputStream());
  BufferedReaderbr2=new BufferedReader(isr2);
  while(true)
  {
 System.out.println("我发言:");
  Stringfasong=br.readLine();
 pw.println(fasong);
  Stringjieshou=br2.readLine();
 System.out.println("服务器发言:"+jieshou);
  }
  }catch(Exceptione){}
}
}

0 0
原创粉丝点击