基于Socket的java网络编程
2013-08-02 20:53
661 查看
今天主要学习一点基于socket通信的java网络编程的基本原理和例子:
要想实现网络中的通信我们需要借助socket,即我们需要知道IP地址和应用进程的端口号,再利用相关的协议、借助物理介质的传送,这就是实现网络传输的基本。
所以,对于网络编程而言,socket起着关键作用,我们直接看下面的代码,分别是服务器端和客户端的程序,这是最简单、单线程的通讯的网络编程的例子,但是它却体现了基本的原理。
运行结果:
服务器
客户端:
以上就是今天要写的一点内容,你学会了吗?努力学习哦!
本文出自 “MySpace” 博客,请务必保留此出处http://wangzhaoli.blog.51cto.com/7607113/1263169
要想实现网络中的通信我们需要借助socket,即我们需要知道IP地址和应用进程的端口号,再利用相关的协议、借助物理介质的传送,这就是实现网络传输的基本。
所以,对于网络编程而言,socket起着关键作用,我们直接看下面的代码,分别是服务器端和客户端的程序,这是最简单、单线程的通讯的网络编程的例子,但是它却体现了基本的原理。
package SocketTest; /* * 服务器端程序 */ import java.net.*; import java.io.*; import java.util.Scanner; public class MyServer{ public static void main(String[] args) throws Exception{ // 启动一个服务端 端口号:0-65535 1024以下不建议使用。 System.out.println("*********服务器***********"); ServerSocket ss = new ServerSocket(8899); // 这是一个阻塞的操作,等待客户端连接 Socket s = ss.accept(); System.out.println("一个客户端连接上来了"); //利用包装流实现听筒 InputStream is = s.getInputStream(); InputStreamReader isr=new InputStreamReader(is); BufferedReader br = new BufferedReader(isr); //利用包装流实现话筒 OutputStream os = s.getOutputStream(); PrintStream ps = new PrintStream(os); //定义一个Boolean型的标志位,可以使while(true)循环骗过编译器 boolean flag = true; Scanner scan = new Scanner(System.in); while(flag){ String str = br.readLine();//听话 System.out.println("客户端说:"+str); ps.println(scan.next());// 说话 } //记得关闭包装流和socket s.close(); br.close(); ps.close(); ss.close(); } }
package SocketTest; /* * 客户端 */ import java.net.*; import java.io.*; import java.util.Scanner; public class MyClient { public static void main(String[] args) throws Exception{ // 启动一个客户端。 System.out.println("*********客户端***********"); Socket s = new Socket("127.0.0.1",8899); //包装流:话筒 OutputStream os = s.getOutputStream(); PrintStream ps = new PrintStream(os); // 输入流:听筒 InputStream is = s.getInputStream(); BufferedReader br = new BufferedReader(new InputStreamReader(is)); boolean flag = true; Scanner scan = new Scanner(System.in); while(flag){ ps.println(scan.next()); System.out.println("服务器说:"+br.readLine()); } ps.close(); br.close(); os.close(); s.close(); } }接下来我们运行这两个程序,注意:一定要先运行服务器端来监听等待客户端的连接,再运行客户端。
运行结果:
服务器
客户端:
以上就是今天要写的一点内容,你学会了吗?努力学习哦!
本文出自 “MySpace” 博客,请务必保留此出处http://wangzhaoli.blog.51cto.com/7607113/1263169
相关文章推荐
- 基于Socket的java网络编程
- 基于Socket的Java网络编程集粹-Java基础-Java-编程开发
- 基于Socket(套接字)的低层次Java网络编程
- 基于Socket的JAVA网络编程
- java进阶 ------ 基于Socket低层次网络编程
- 基于Socket的java网络编程
- java网络编程【2】 基于Socket的java网络编程(含实例)
- 基于Socket的Java网络编程
- 基于Socket的java网络编程
- 基于Socket的Java网络编程集粹
- java 基于socket套接字的低层次网络编程
- Java网络编程实践和总结 --- 基于TCP的Socket编程之echo回显的操作
- java进阶 ------ 基于Socket低层次网络编程
- java网络编程【2】 基于Socket的java网络编程(含实例)
- 基于Socket的Java网络编程集粹
- Java——多人聊天室(基于TCP的网络编程——Socket)
- 基于Socket的Java网络编程集粹
- 基于Socket的java网络编程
- Java网络编程基础(二)-- 基于TCP/IP的Socket编程
- java:网络编程(一/基于Socket的单客户端连接)