文档章节

Java网络通信示例

李茂冉
 李茂冉
发布于 2016/05/15 14:43
字数 354
阅读 34
收藏 0

##编写javaSocket编程的几种结构

  • 直接使用Socket编程实现
  • 使用Socket,再结合java的多线程编程
  • 使用NIO中的非阻塞(Non Blocking) Socket再结合java的多线程编程
  • 使用Jdk自带的或者第三方的线程池技术对线程进行管理,提高多线程的执行效率
  • 使用开源的java Socket开发框架,例如:mina和cindy框架。

Java网络编程主要使用java.net包

##执行演示网络代码的时候,要先运行服务端,再运行客户端。

###服务端:

public class TCPserver{
	static void print(String str){
		System.out.println(str);
	}
	public static void main(String[]args){
		print("服务器开启成功!");
		java.net.ServerSocket server;
		java.net.Socket client;
		try{
			server=new java.net.ServerSocket(5555);
		//	while(true){
				client=server.accept();
				print("一个客户端连接成功!");
				//接受客户端的信息
				java.io.DataInputStream dis=new java.io.DataInputStream(client.getInputStream());
				String str= dis.readUTF();
				print(str);
				//给客户端发送信息!
				java.io.DataOutputStream dos=new java.io.DataOutputStream(client.getOutputStream());
				dos.writeUTF("你连接成功了!");
				dis.close();
				dos.close();
				client.close();
				print("客户端断开连接!");
		//	}
		}catch(java.io.IOException ex){
			ex.printStackTrace();
		}
	}
}

###客户端


public class  TCPclient{
	static void print(String str){
		System.out.println(str);
	}
	public static void main(String[] args) 
	{
		print("客户端开启成功!");
		try{
			java.net.Socket client=new java.net.Socket("127.0.0.1",5555);
			print("客户端连接成功!");
			String str=javax.swing.JOptionPane.showInputDialog(null,"请输入您要发送的内容!","提示",0);
			//给服务端发送信息
			java.io.DataOutputStream dos=new java.io.DataOutputStream(client.getOutputStream());
			dos.writeUTF(str);
			//接受服务端的信息
			java.io.DataInputStream dis=new java.io.DataInputStream(client.getInputStream());
			print(dis.readUTF());
			dos.close();
			dis.close();
			client.close();
			print("客户端连接断开!");
		}
		catch(java.io.IOException ex){
			ex.printStackTrace();
		}
	}
}

© 著作权归作者所有

共有 人打赏支持
上一篇: Java GUI编程
下一篇: Java数组使用
李茂冉
粉丝 5
博文 103
码字总数 59256
作品 0
东城
高级程序员
私信 提问
解决Fiddler不能监听Java HttpURLConnection请求的方法

在默认情况下,Fiddler不能监听Java HttpURLConnection请求。究其原因,Java的网络通信协议栈可能浏览器的通信协议栈略有区别,Fiddler监听Http请求的原理是在应用程序和操作系统网络通信层之...

小克898
2013/05/18
0
0
Rserve与Java的跨平台通信

R的极客理想系列文章,涵盖了R的思想,使用,工具,创新等的一系列要点,以我个人的学习和体验去诠释R的强大。 R语言作为统计学一门语言,一直在小众领域闪耀着光芒。直到大数据的爆发,R语言...

zh119893
2014/04/20
0
2
Apache Mina 网络通信

Apache Mina Server 是一个网络通信应用框架,也就是说,它主要是对基于TCP/IP、UDP/IP协议栈的通信框架(当然,也可以提供JAVA 对象的序列化服务、虚拟机管道通信服务等),Mina 可以帮助我...

Mr&Cheng
2013/01/20
0
0
晒晒你看过的哪些Java相关的书。

@红薯 要我们晒Jar包 , 我倒想看看大家都看过什么Java编程相关的书籍,我先来:如下 1、iText in Action 主要内容: a、自动化静态和动态XFA表单 b、如何从XML生成动态PDF或数据库 c、如何添...

刘学炜
2012/09/27
317
4
JAVA开发招聘信息

大家好,下面发布一个招聘信息,如果格式及内容上有任何问题,请及时提出我即做出修改和正确的解释,谢谢大家理解。相关企业信息及职位描述如下,如是有兴趣请直接打我的手机:13761086919 或...

AnnieZhang
2011/12/08
1K
4

没有更多内容

加载失败,请刷新页面

加载更多

《碎玉投珠》的读后感想法心得范文3800字

《碎玉投珠》的读后感想法心得范文3800字: 《碎玉投珠》是晋江作者北南2018年的作品,内容主要讲述了其17年的《两小无嫌猜》中副cp师父师叔的爱情故事。 个人并没有看过北南其他的作品,这篇...

原创小博客
19分钟前
0
0
Confluence 6 文档主题合并问答

在 Confluence 官方 前期发布的消息 中,文档主题在 Confluence 6.0 及其后续版本中已经不可用。我们知道你可能对这个有很多好好奇的问题,因此我们在这里设置了一个问答用于帮助你将这个主题...

honeymose
32分钟前
2
0
java框架学习日志-2

上篇文章(java框架学习日志-1)虽然跟着写了例子,也理解为什么这么写,但是有个疑问,为什么叫控制反转?控制的是什么?反转又是什么? 控制其实就是控制对象的创建。 反转与正转对应,正转...

白话
今天
6
0
Integer使用双等号比较会发生什么

话不多说,根据以下程序运行,打印的结果为什么不同? Integer a = 100;Integer b = 100;System.out.println(a == b);//print : trueInteger a = 200;Integer b = 200;System.out.pr...

兜兜毛毛
昨天
11
0
CockroachDB

百度云上的CockroachDB 云数据库 帮助文档 > 产品文档 > CockroachDB 云数据库 > 产品描述 开源NewSQL – CockroachDB在百度内部的应用与实践 嘉宾演讲视频及PPT回顾:http://suo.im/5bnORh ...

miaojiangmin
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部