- 相关推荐
sun认证考试辅导:java关于多线程的部分操作
随着计算机技术的发展,编程模型也越来越复杂多样化。但多线程编程模型是目前计算机系统架构的最终模型。下面yjbys小编为大家分享的是java多线程的部分操作方法,希望对同学们有所帮助!
一般服务器端代码,每次收到一个线程,一个client就会产生:
/************************ 开始监听 **************************/
int port = 4311;
ServerSocket server = null;//服务器
Socket client = null;//客户端
try {
server = new ServerSocket(port);
} catch (IndirectionException e1) {
System.out.println("正在监听……");
}
while(true)
{
System.out.println("等待客户"+i);
i++;
try {
client = server.accept();//开始监听线程,接收到client
System.out.println("客户地址:" + client.getInetAddress());
} catch (IOException e1) {
System.out.println("正在等待客户");
}
}
客户端代码,启动之后便会连接服务器,得到回应之后便会形成socket连接
Socket clientsocket = null;
try {
clientsocket = new Socket("localhost",4311);
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
socket的输入和输出一般用流来相互写。
in.read()和out.write(),
in.readObject()和out.writeObject(object)。
客户端的一个线程里面同时new了多个ObjectOutputStream流是不允许的,其它的流可以。ObjectOutputStream有锁机制。
如果是一般的输入和输出流的话用:
DateOutputStream out = null;
DateInputStream in = null;
//获得输入输出流
try {
out=new DateOutputStream(socket.getOutputStream());
in=new DateInputStream(socket.getInputStream());
} catch (IOException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
}
如果是对象上的输入和输出的话用:
ObjectOutputStream out = null;
ObjectInputStream in = null;
//获得输入输出流
try {
out=new ObjectOutputStream(socket.getOutputStream());
in=new ObjectInputStream(socket.getInputStream());
} catch (IOException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
}
如果复杂之后,可以是服务器启动之后对每个客户端启动一个线程与客户端的线程进行交互。
【sun认证考试辅导:java多线程的部分操作】相关文章:
SUN推出netbeans专家认证01-25
2024年java多线程面试题及答案09-04
2024年JAVA认证经典面试题09-05
微软认证考试等级09-20
Linux认证考试科目02-02
红帽认证考试内容06-08
IBM AIX 认证考试简介09-03
Sql认证考试内容06-08
Adobe认证Photoshop考试试题07-03