java关于多线程的操作
一般服务器端代码,每次收到一个线程,一个client就会产生:
/************************ 开始监听 **************************/
int port = 4311;
ServerSocket server = null;//服务器
Socket client = null;//客户端
try {
server = new ServerSocket(port);
} catch (IndirectionException e1) {
tln("正在监听……");
}
while(true)
{
tln("等待客户"+i);
i++;
try {
client = pt();//开始监听线程,接收到client
tln("客户地址:" + netAddress());
} catch (IOException e1) {
tln("正在等待客户");
}
}
客户端代码,启动之后便会连接服务器,得到回应之后便会形成socket连接
Socket clientsocket = null;
try {
clientsocket = new Socket("localhost",4311);
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
tStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
tStackTrace();
}
socket的'输入和输出一般用流来相互写。
()和e(),
Object()和eObject(object)。
客户端的一个线程里面同时new了多个ObjectOutputStream流是不允许的,其它的流可以。ObjectOutputStream有锁机制。
如果是一般的输入和输出流的话用:
DateOutputStream out = null;
DateInputStream in = null;
//获得输入输出流
try {
out=new DateOutputStream(utputStream());
in=new DateInputStream(nputStream());
} catch (IOException e2) {
// TODO Auto-generated catch block
tStackTrace();
}
如果是对象上的输入和输出的话用:
ObjectOutputStream out = null;
ObjectInputStream in = null;
//获得输入输出流
try {
out=new ObjectOutputStream(utputStream());
in=new ObjectInputStream(nputStream());
} catch (IOException e2) {
// TODO Auto-generated catch block
tStackTrace();
}
如果复杂之后,可以是服务器启动之后对每个客户端启动一个线程与客户端的线程进行交互。
-
关于Java Socket网络传输的序列化机制
采用JavaSocket网络传输的`序列化机制,将对象压扁成二进制字节,将二进制字节在网络中传输;自定义协议,将对象用字符串描述出来,将字符串用二进制表示,在网络中传输,在另外一边用相反的策略解析这个字符串,重新构造业务对象,这个方法能够在异构平台中进行传输而不变形,但...
-
关于JAVA请求需要Basic身份验证的网页
通过JAVA抓取页面时,有些页面会返回401(Unauthorized)响应状态码和www-authenticate响应头来要求客户端进行身份认证。这种认证有两种方式:BASIC和DIGEST,BASIC验证要求客户端对用户名和密码进行BASE64编码后传送给服务器。DIGEST的认证方式的细节比较复杂,会经过...
-
关于SUN认证的作用
SUN认证是给网络设计界建立的一套认证标准,Sun公司推出了Java以及Solaris技术认证方案。下面是小编整理的精选的关于SUN认证的作用,欢迎大家参考!Sun国际认证1)专业认证培训计划为系统管理员和Java网络管理员和程序员提供第三方认可的技能认证。2)获得全球认可的...
-
SUNJava程序员认证考试题库
Sun认证Java程序员考试旨在观察您通过应用软件分配进行复杂编程的能力,之后还要测试您完成编程所需的知识。以下是小编整理的关于SUNJava程序员认证考试题库,希望大家认真阅读!1.下列哪项不是JDK所包含的内容?(选一项)编程语言B.工具及工具的APIEE扩展API平台虚...