Java网络编程基础
2015-07-28 10:15
671 查看
第一步,构建服务器
步骤:
1、构建服务器端ServerSocket对象(Socket类扮演两种角色:a、当使用new构建一个Socket对象是意味着客户端需要向服务器端申请链接。b、当在服务器中使用accept方法获取是,表明获得一个客户端连接的连接信息
2、通过ServerSocket对象.accept方法取得连接。
3、通过流与客户端交互数据。
第二步,构建客户端
步骤:
1、构建Scoket对象(通过InetAddress.getByName(ip),端口号)获得)。
2、通过流与服务器进行数据交互。
以下是一个简单的服务器/客户端的实现。实现的具体功能是客户端发送信息给服务器,服务器在控制台打印客户端发来的信息
1、服务器
步骤:
1、构建服务器端ServerSocket对象(Socket类扮演两种角色:a、当使用new构建一个Socket对象是意味着客户端需要向服务器端申请链接。b、当在服务器中使用accept方法获取是,表明获得一个客户端连接的连接信息
2、通过ServerSocket对象.accept方法取得连接。
3、通过流与客户端交互数据。
第二步,构建客户端
步骤:
1、构建Scoket对象(通过InetAddress.getByName(ip),端口号)获得)。
2、通过流与服务器进行数据交互。
以下是一个简单的服务器/客户端的实现。实现的具体功能是客户端发送信息给服务器,服务器在控制台打印客户端发来的信息
1、服务器
import java.io.DataInputStream; import java.io.IOException; import java.io.InputStream; import java.net.ServerSocket; import java.net.Socket; public class Server { public static void main(String[] args) { try { ServerSocket server = new ServerSocket(8989); Socket socket = server.accept(); InputStream is = socket.getInputStream(); DataInputStream dis = new DataInputStream(is); while(true) { String msg = dis.readUTF(); System.out.println(msg); if("exit".equals(msg)) { break; } } is.close(); dis.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
2、客户端
import java.io.BufferedInputStream; import j 4000 ava.io.BufferedReader; import java.io.DataOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStream; import java.net.Inet4Address; import java.net.InetAddress; import java.net.Socket; import java.net.UnknownHostException; public class Client { public static void main(String[] args) { try { Socket socket = new Socket(InetAddress.getByName("127.0.0.1"),8989); BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));//用BufferedReader读取控制台的输入信息 OutputStream os = socket.getOutputStream();//创建输出流 DataOutputStream dos = new DataOutputStream(os); while(true) { String msg = reader.readLine();/从控制台读取一行 dos.writeUTF(msg);//将信息通过流发送给服务器 if("exit".equals(msg)){//如果输入"exit"则结束客户端 break; } } //关闭流 os.close(); dos.close(); } catch (UnknownHostException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
相关文章推荐
- 大黄蜂(HORNET):比Tor更快更安全的匿名网络
- Source Insight基本使用和快捷键 http://www.cnblogs.com/mengdd/p/3506526.html
- SCVMM 2012 R2运维管理十四之:VMM中网络概述
- SCVMM 2012 R2运维管理十四之:VMM中网络概述
- poj 3469 dinic网络流模板
- 摘:MD231 gprs模块建立tcp或udp连接,AT命令详细参考
- tcp超时重传
- 看你的门-攻击服务器(4)-HTTP参数注入攻击
- iOS开发网络篇—大文件的多线程断点下载
- 校园网络维护脚本
- 解决企业In-House安装APP需HTTPS支持的问题
- 通过持续ping来检测网络质量
- 通过持续ping来检测网络质量
- Volley 异步网络请求分析
- android网络操作I: OkHttp, Volley以及Gson
- HttpClient工具类
- 黑马程序员 4000 ——Java基础---网络编程
- 多益网络笔试题
- TCP恋爱史:三次握手和四次分手
- 客户端开发--3控制器开发准备(2)【网络通信模块】