-
Socket通信实现步骤 套接字是两台机器间通信的端点查看全部
-
TCP是面向链接的,可靠的,有序的,以字节流的方式发送数据 简建立服务端Server Socket,绑定指定的端口,然后在指定的端口侦听查看全部
-
InetAddress:表示网络上的硬件资源,像IP地址之类的查看全部
-
IP标识计算机 协议:通信语言 端口号:区分不同应用程序的通信 TCP/IP协议族: 是以TCP和IP为基础的不同层次上多个协议的集合 应用层:的协议 HTTP,浏览网页之类 的 FTP:文件传输协议,文件的上传下载,共享 SMTP:箭筒邮件传输协议 Telnet:远程登录服务 端口:用来区分不同的应用程序 0 ~ 65535,其中0~1023为系统锁保留 IP地址和端口号组成了所谓的Socket,Socket是网络上运行的程序之间双向通信链路的终结点,是TCP和UDP的基础 http:80 ftp:21 telnet:23查看全部
-
使用TCP通信传输对象查看全部
-
客户端: package feifei.com; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.DatagramSocketImplFactory; import java.net.InetAddress; import java.net.SocketException; import java.net.UnknownHostException; /* * 客户端,基于UDP实现 */ public class UdpClient { public static void main(String[] args) throws IOException { /* * 向服务器发送数据 */ //指定服务器的地址,端口号,数据 InetAddress ia=InetAddress.getByName("localhost"); int port=8880; byte[] data="用户名:feifei,密码:123".getBytes();//将其转换为字节数组 //创建数据报,包含发送的数据信息 DatagramPacket dp=new DatagramPacket(data,data.length,ia,port); //创建实现数据的发送 DatagramSocket ds=new DatagramSocket(); //向服务器发送数据 ds.send(dp); /* * 接受服务器响应的数据 */ //创建数据报 byte [] data2=new byte[1024]; DatagramPacket dp1=new DatagramPacket(data2, data2.length); //接收响应的数据 ds.receive(dp1); //读取服务器端响应的数据信息 String s=new String(data2,0,dp1.getLength()); System.out.println("我是客户端,服务器端说:"+s); //关闭 ds.close(); } }查看全部
-
服务器端: package feifei.com; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.net.SocketException; /** * 服务器端类,基于UDP */ public class UdpServer { public static void main(String[] args) throws IOException { /* 服务器端接受了客户端的信息 */ //先创建DatagramSocket,指定端口号 DatagramSocket ds=new DatagramSocket(8880); System.out.println("服务器端已经启动,等待客户端发送数据"); //创建字节数组,存放接收数据报的大小 byte [] data=new byte[1024]; //创建DatagramPacket数据包,用于接受客户端发送的数据 DatagramPacket dp=new DatagramPacket(data, data.length); //接收客户端发送的数据 ds.receive(dp); //读取客户端的信息 String info=new String(data,0,dp.getLength()); System.out.println("我是服务器端,客户端说:"+info); //向客户端响应信息 //定义客户端的地址,端口号,数据 InetAddress adress=dp.getAddress(); int port=dp.getPort(); byte[] byte1="欢迎您".getBytes(); //创建数据报,包含响应的数据信息 DatagramPacket dp1=new DatagramPacket(byte1, byte1.length,adress,port); //响应客户端 ds.send(dp1); //关闭 ds.close(); } }查看全部
-
代码参考。查看全部
-
客户端实现步骤查看全部
-
服务器实现步骤查看全部
-
UDP 编程: 特点:udp协议是无连接,无状态,无序的、不可靠的。 优点:速度快。 原理:将需要发送的信息封装在数据报(Datagram),在数据报里指明Socket主机和端口号。然后发送出去。 使用的操作类: DatagramPacket 表示数据报包 DataSocket 用来发送和接收数据报包的套接字。查看全部
-
socket模型查看全部
-
步骤: (1)创建ServerSocket和Socket (2)打开连接到Socket的输入/输出操作 (3)按照协议对Socket进行读/写操作 (4)关闭输入输出流,关闭Socket 服务器端: (1)创建ServerSocket对象,绑定监听器 (2)通过accept()方法监听客户端请求 (3)连接建立以后通过读取客户端发送请求消息 (4)通过输出流向客户端发送响应信息 (5)关闭资源 客户端: (1)创建Socket对象,指明需要连接的服务器地址和端口号(1023以后的端口) (2)连接建立后,通过输出流向服务器端请求 (3)通过输入流获取服务器响应信息 (4)关闭资源 常用I/O操作 InputStream is = socket.getInputStream();//字节输入流 InputStreamReader isr = new InputStreamReader(is)//将字节输入流转换为字符输入流 BufferedReader br = new BufferedReader(isr);//为输入流添加缓冲 br.readLine()按行读取 flush()刷新缓存查看全部
-
多线程服务器查看全部
-
socket: 1、多线程的优先级(死循环中注意设置优先级问题。)优先级默认为5,可以适当降低优先级,以提高运行效率。 2、对于同一个socket,如果关闭了输出流,则与该输出流相关联的socket也会被关闭,所以一般不用关闭流,直接关闭socket即可。 3、使用tcp通信传输 对象 更符合面向对象编程的思想。 4、通过socket编程传输文件的功能模块是:通过io流读取文件字符流进行传输。查看全部
举报
0/150
提交
取消