文档章节

Java网络通信示例

李茂冉
 李茂冉
发布于 2016/05/15 14:43
字数 354
阅读 32
收藏 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();
		}
	}
}

© 著作权归作者所有

共有 人打赏支持
李茂冉
粉丝 5
博文 103
码字总数 59256
作品 0
东城
高级程序员
解决Fiddler不能监听Java HttpURLConnection请求的方法

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

小克898
2013/05/18
0
0
影响Java EE性能的十大问题

本文作者是一名有10多年经验的高级系统架构师,他的主要专业领域是Java EE、中间件和JVM技术。他在性能优化和提升方面也有很深刻的见解,下面他将和大家分享一下常见的10个影响Java EE性能问...

jiyayun
2013/07/23
0
0
Apache Mina 网络通信

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

Mr&Cheng
2013/01/20
0
0
java或android使用web3j开发以太坊智能合约的快速入门教程

web3j简介 web3j是一个轻量级、高度模块化、响应式、类型安全的Java和Android类库提供丰富API,用于处理以太坊智能合约及与以太坊网络上的客户端(节点)进行集成。 可以通过它进行以太坊区块链...

笔阁
06/25
0
0
eclipse远程debug,java项目

首先java项目要支付可远程调试得到启动时加入参数 启动远程调试 启用JMX,远程性能观察 eclipse配置 其中:host为远程java程序提供远程调试的IP,post为远程java程序提供远程调试的端口 使用 ...

有事没事
2014/12/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

spring-boot | 日志

引言 好久不见,都还好吗? 大家都知道,我一般都是带来实用的东西,这次也一样,我们来试试项目开发中的日志处理。 理论知识 1、为什么要用日志?你是否因为项目出现问题,查找日志文件定位...

成都_小冯同学
15分钟前
0
0
dubbo下的补偿实现(一)

背景 由于前面几篇文章涉及的问题 分布式事务的思考 在我们微服务的场景下 各种本地事务都没有办法控制的很好。 A服务调用B服务 当B服务成功提交之后 A发生了异常 这种情况下要如何处理呢??...

Mr_Qi
23分钟前
2
0
HTML显示json字符串并且进行格式化

通过pre标签进行格式化展示,使用JSON.stringify()方法转换。 代码如下:   <html> <head> <title>HTML显示json字符串并且进行格式化</title> </head> <body> <p id="show_p">{ "name": "B......

writeademo
44分钟前
0
0
LNMP——php-fpm

php-fpm的pool •vim /usr/local/php/etc/php-fpm.conf //在[global]部分增加include并删除我们之前www池子 • include = etc/php-fpm.d/*.conf • mkdir /usr/local/php/etc/php-fpm.d/ • ......

chencheng-linux
47分钟前
0
0
TensorFlow layers slim 模块搭建cnn对mnist分类,比较bn效果

shape变化 (?, 784)(?, 28, 28, 1)(?, 14, 14, 8)(?, 7, 7, 8)(?, 1, 1, 8)(?, 8)(?, 10) 结果对比,基本上还是有点用的 0.91725457 0.9232 0.9548 0.95530.9177273 0.9234 0....

阿豪boy
50分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部