TCP/IP知识总结面试题之Socket服务
来源:互联网 发布:吃鸡优化软件官网 编辑:程序博客网 时间:2024/06/05 19:45
1、如何新建一个客户端Socket服务
//new出一个对象即可//指定链接的IP地址,端口号Socket socket =new Socket("www.baidu.com",1000);
2、写出Socket连接服务器与服务器进行交互的代码
//新建Socket服务,将数据发送给服务端Socket socket =new Socket("www.baidu.com",1000);//得到写入流BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));//写入数据bw.write("i love you");bw.newLine();bw.close();//从服务端读取数据BufferedReader br=new BufferedReader(new InputStreamReader(socket.getInputStream));String line =null;StringBuilder sb=new StringBuilder();while(line=((br.readLine())!=null){ sb.append(line);}System.out.println(sb.toString());
3、什么时候会关闭Socket服务
有4种情况会关闭,分为手动或者系统。
手动的方式:
1、socket.close();
2、InputStream.close();
系统:
1、程序退出
2、新的Socket请求覆盖
总结,一般而言,手动的话容易造成网络被占用,因为需要一段时间的缓冲,不然会占用大量的网络资源
4、如何使用Socket.connect();的方法连接服务器
Socket socket=new Socket();socket.connetct(new InetSocketAddress("www.baidu.com",1000));
5、网络的超时
我们要知道,我们客户端与服务端的连接的异常会出现在两个方面,第一个是发送请求,一个是接收服务端传送回来的信息
那么网络延时也是发生在这个时候,第一个是请求超时,第二是获取数据超时,为了提供用户的体验,我们可以设置在发送请求的时候设置超时时间,方法是setSOTimeout(time);
ps:SO是Socket的缩写
6、在之前我们说socket关闭释放网络资源的时候,我们说可以使用close方法,但是如果在关闭的时候,我们的信息还没发完整,这个时候我们应该设置一个比较长的时间,连接到服务器,然后将信息提交的时候,设置长时间,比如一分钟。
7、如何新建一个ServiceSocket服务
ServiceSocket servicesocket =new SocketSocket(1000);//指定请求队列长度ServiceSocket servicesocket =new SocketSocket(1000,100);
8、什么是请求队列
一个服务端接收来自客户端的请求,可能有多个服务端的请求,这个时候服务端会将请求放进队列,(队列是先进先出的原则),每一个客户端的请求都有相应的新的线程去处理,当服务端开启accept的时候,就开始处理,但是当客户端请求过多,超出队列长度的时候,就会抛异常
0 0
- TCP/IP知识总结面试题之Socket服务
- Socket编程之Tcp/Ip协议服务
- TCP/IP面试题
- TCP/IP面试题
- TCP/IP面试题
- TCP/IP面试题
- 面试题总结之TCP报头
- http,socket,tcp/ip 网络传输与通讯知识总结
- http,socket,tcp/ip 网络传输与通讯知识总结
- http,socket,tcp/ip 网络传输与通讯知识总结
- http,socket,tcp/ip 网络传输与通讯知识总结
- http,socket,tcp/ip 网络传输与通讯知识总结
- TCP/IP 面试题整理
- TCP/IP 面试题整理
- TCP/IP面试题整理
- TCP/IP常见面试题
- TCP/IP 面试题整理
- Android面试题----Android开发也需要了解的TCP\IP和Http知识
- 数码管显示实验
- 树莓派上安装vsftpd
- Android实现指南针功能
- 原:计算机的多维学习方法
- 项目经理所在乎的事情
- TCP/IP知识总结面试题之Socket服务
- BZOJ 3560 DZY Loves Math V
- HOOK 钩子拦截WM_DEVICECHANGE消息
- 第五周程序阅读(3)
- thinkphp中的模型替换很容易混淆,解决办法如下
- android apk签名
- 2-3 Mifare S50的访问控制条件
- 定义一个日期Date,该类对象存放一个日期,可以提供的操作有:void :printDate(); //显示日期,格式如“日期是:2010年6月8日”void
- wireshark抓包详细图文教程-04