java前后端怎么通信的
socket双向连接的建立过程?
socket双向连接的建立过程?
java socket建立连接的过程如下:socket
1、 首先调用Socket类的构造函数,以服务器的指定的IP地址或指定的主机名和指定的端口号为参数,创建一个Socket流,在创建Socket流的过程中包含了向服务器请求建立通讯连接的过程实现。
2、 建立了客户端通讯Socket后。就可以使用Socket的方法getInputStream()和getOutputStream()来创建输入/输出流。这样,使用Socket类后,网络输入输出也转化为使用流对象的过程。
3、 使用输入输出流对象的相应方法读写字节流数据,因为流连接着通讯所用的Socket,Socket又是和服务器端建立连接的一个端点,因此数据将通过连接从服务器得到或发向服务器。这时我们就可以对字节流数据按客户端和服务器之间的协议进行处理,完成双方的通讯任务。
4、 待通讯任务完毕后,我们用流对象的close()方法来关闭用于网络通讯的输入输出流,在用Socket对象的close()方法来关闭Socket。
android开发中跨进程通信有几种方式?
在android SDK中提供了4种用于跨进程通讯的方式,Activity、Content Provider、Broadcast和Service。
介绍
Activity可以跨进程调用其他应用程序;
Content Provider可以跨进程访问其他应用程序中的数据;
Broadcast可以向android系统中所有应用程序发送广播;
Content Provider返回的是Cursor对象,而Service返回的是Java对象,这种可以跨进程通讯的服务叫AIDL服务;
tomcat可以做socket通信吗?
可以在tomcat环境下用Java程序实现socket通信,代码如下:
服务端:
/**
*
*/
package ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
/**
***************************************************************
* 项目名称:JavaThread
* 程序名称:JabberServer
* 日期:2015-7-11 下午21:01:12
* 作者:Administrator
* @version
***************************************************************
*/
public class JabberServer {
public static int PORT 8080;
public static void main(String[] agrs) {
ServerSocket s null;
Socket socket null;
BufferedReader br null;
PrintWriter pw null;
try {
//设定服务端的端口号
s new ServerSocket(PORT);
(ServerSocket Start: s);
//等待请求,此方法会一直阻塞,直到获得请求才往下走
socket ();
(Connection accept socket: socket);
//用于接收客户端发来的请求
br new BufferedReader(new InputStreamReader(()));
//用于发送返回信息,可以不需要装饰这么多io流使用缓冲流时发送数据要注意调用.flush()方法
pw new PrintWriter(new BufferedWriter(new OutputStreamWriter(())),true);
while(true){
String str ();
if(str.equals(END)){
break;
}
(Client Socket Message: str);
(1000);
(Message Received);
pw.flush();
}
} catch (Exception e) {
// TODO Auto-generated catch block
();
}finally{
(Close.....);
try {
();
();
();
();
} catch (Exception e2) {
}
}
}
}
客户端:
/**
*
*/
package ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
/**
***************************************************************
* 项目名称:JavaThread 程序名称:JabberClient
* 作者:Administrator
* @version
***************************************************************
*/
public class JabberClient {
/**
* 方法名:main
*
* @param @param args
* @return void
*/
public static void main(String[] args) {
Socket socket null;
BufferedReader br null;
PrintWriter pw null;
try {
//客户端socket指定服务器的地址和端口号
socket new Socket(127.0.0.1, JabberServer.PORT);
(Socket socket);
//同服务器原理一样
br new BufferedReader(new InputStreamReader(
()));
pw new PrintWriter(new BufferedWriter(new OutputStreamWriter(
())));
for (int i 0; i 10; i ) {
(howdy i);
pw.flush();
String str ();
(str);
}
(END);
pw.flush();
} catch (Exception e) {
();
} finally {
try {
(close......);
();
();
();
} catch (IOException e) {
// TODO Auto-generated catch block
();
}
}
}
}