java 网络编程(三)
来源:互联网 发布:photosynth替代软件 编辑:程序博客网 时间:2024/06/07 03:47
博主 qq 656358805,欢迎在线交流!
下面我们接着学习基于tcp协议的通信:
Socket通信:tcp协议,面向连接的特点,所以要确定连接,游览器也是一个基于tcp的客户端。
核心:请求与相应。
所用类:Socket编程
服务器:ServerSocket
客户端:Socket 客户端不同于udp,不用指定端口号,客户端的端口号是系统内部自动分配的,然而Socket的对象不是一个计算机模型,而是抽象成一条管道!
服务器搭建:
1、创建服务器。
2、开始时刻接受客户端请求。
3、接收成功后发送成功提示给用户。
public class Server
{
public static void main(String[]args) throws IOException
{
//1、创建SocketServer类,创建服务端
ServerSocket myserver=new ServerSocket(6666);
//2、阻塞式接受客户端请求,注意之所以是阻塞式是因为accept返回Socket类,若接收不到客户端则一直等待下去,不能执行下面程序
Socket myuser=myserver.accept();
//注意上一行代码!!!服务端的accept接收了客户端的类,这个类用于主体操作。
System.out.println("接收到一个客户端");
//3、发送数据给用户表示连接成功。
String returnm="欢迎使用";
BufferedWriter writer=new BufferedWriter(new OutputStreamWriter(myuser.getOutputStream()));
writer.write(returnm);
writer.newLine();
//此处调用的newLine()方法是为了增加一个结束符,从而使客户端的readline()运行正常
writer.flush();
//writer.close();
}
}
客户端搭建:
1、创建客户端
2、接收服务器返回的数据。
public class Client
{
public static void main(String[]args) throws UnknownHostException, IOException
{
//1、创建客户端Socket
Socket user=new Socket("localhost",6666);
//2、接受服务器返回的数据
BufferedReader reader=new BufferedReader(new InputStreamReader(user.getInputStream()));
String read=reader.readLine();
System.out.println(read);
}
}
也可以用另一种流处理方式,代码如下不细讲了。
服务端:
DataOutputStream writer=new DataOutputStream(myuser.getOutputStream());
writer.writeUTF(returnm);
writer.flush();
客户端:
DataInputStream reader=new DataInputStream(user.getInputStream());
String read=reader.readUTF();
System.out.println(read);
- Java网络编程(三)
- java 网络编程(三)
- Java网络编程(三)
- Java专题(三)之网络编程
- java网络编程(三)socket
- java网络编程(三)传输对象
- 《JAVA网络编程》阅读笔记(三)
- java网络编程学习(三)
- JAVA基础(三)网络编程简介
- Java之网络编程(三)TCP
- Java网络编程_基本网络支持(三)
- Java Socket网络编程三
- 【java网络编程】之三
- 网络编程(三)
- 网络编程(三)
- 网络编程(三)
- JAVA笔记:Java网络编程(三)TCP程序设计
- 12.5-全栈Java笔记:Java网络编程(三)
- HDU
- (待更新理解)(数值过大素数计数模版)HDU 5901 Count primes
- Duplicate files copied in APK META-INF/LICENSE异常冲突解决
- ACM ArabellaCPC 2015 E题.二分or离散化
- HTTPweb服务器——HTTP整体设计框架
- java 网络编程(三)
- idea中war和war exploded的区别及修改jsp必须重新启动tomcat才能生效的问题(转)
- zy专区
- mongodb,redis,hbase 三者都是nosql数据库,他们的最大区别和不同定位
- scrapy 开发环境搭建
- 经典递归问题--汉诺塔
- MAC 下配置MQTT 服务器Mosquitto
- Redis集群搭建与简单使用
- codeforces #410 Div.2题解报告