java socket编程实例代码讲解
2015-08-03 22:08
639 查看
1、所谓socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄。应用程序通常通过"套接字"向网络发出请求或者应答网络请求。
操作java socket时用到的最多的三个方法为:
accept():主要用于服务器端产生“阻塞”,等待客户端的链接请求,并且返回一个客户端的Socket实例;
getInputStream():方法主要用来获得网络连接输入,同时返回一个InputStream对象实例;
getOutputStream():方法和上面的getInputStream相反。
2、一般要建立Java的Socket连接,应首先明确服务器端和客户端,服务器端使用ServerSocket监听指定的端口,使用accept 等待客户端请求,链接链接,开始会话、完成会话后,关闭链接。(注意,一般socket的关闭都应该是服务器端来进行的,后面说);客户端使用 Socket对网络中的某个服务器的某个端口发出链接请求,连接成功,开始会话,会话完成,Socket关闭。
2、示例代码:
服务器端:
客户端:
操作java socket时用到的最多的三个方法为:
accept():主要用于服务器端产生“阻塞”,等待客户端的链接请求,并且返回一个客户端的Socket实例;
getInputStream():方法主要用来获得网络连接输入,同时返回一个InputStream对象实例;
getOutputStream():方法和上面的getInputStream相反。
2、一般要建立Java的Socket连接,应首先明确服务器端和客户端,服务器端使用ServerSocket监听指定的端口,使用accept 等待客户端请求,链接链接,开始会话、完成会话后,关闭链接。(注意,一般socket的关闭都应该是服务器端来进行的,后面说);客户端使用 Socket对网络中的某个服务器的某个端口发出链接请求,连接成功,开始会话,会话完成,Socket关闭。
2、示例代码:
服务器端:
package com.icer.server; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; /** * Server * * @author Icer * */ public class Server { private ServerSocket ss; private Socket s; private BufferedReader br; private PrintWriter pw; public Server() { try { ss = new ServerSocket(10000); System.out.println("Server is starting..."); s = ss.accept(); br = new BufferedReader(new InputStreamReader(s.getInputStream())); pw = new PrintWriter(s.getOutputStream(),true); String line = br.readLine(); System.out.println(line); pw.println("your word is:" + line); //pw.println("helloworld"); br.close(); pw.close(); } catch (IOException ie) { ie.printStackTrace(); } } public static void main(String[] args) throws Exception { new Server(); } }
客户端:
package com.icer.client; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.Socket; /** * Client * @author Icer * */ public class Client { private Socket s; private BufferedReader br; //private BufferedReader line; private PrintWriter pw; private String line = ""; public Client() { try{ s = new Socket("127.0.0.1",10000); pw = new PrintWriter(s.getOutputStream(),true); br = new BufferedReader(new InputStreamReader(s.getInputStream())); pw.println("hello"); line = br.readLine(); System.out.println(line); br.close(); pw.close(); }catch(IOException ie){ ie.printStackTrace(); } } public static void main(String[] args) throws Exception { new Client(); } }
相关文章推荐
- MAVEN下实现spring boot打包成war包(spring boot 01)
- 关于java ee 7 精粹
- java线程池原理
- java设计模式(二)
- 使用eclipse tool 逆向生成Hiberante类xml、和hbm.xml
- java 类加载机制
- Java进阶(五十一)必须记住的Myeclipse快捷键
- 必须记住的Myeclipse快捷键
- java IO总结
- JAVA 语言基础总结
- Java删除ArrayList中的重复元素的2种方法
- java基础第八讲——URL、XML的解析
- Java Timer 定时器的使用
- Java异常处理——浅谈
- 一句话解释什么是回调函数
- Java学习--(五)Buliding a Java Program(使用eclipse)
- Java并发编程:volatile关键字解析
- Java 反射机制原理
- JDK 和 JRE 概念
- java实现单链表