读书人

Java顶用多线程实现网络编程

发布时间: 2012-12-21 12:03:49 作者: rapoo

Java中用多线程实现网络编程

要Java程,首先要对通讯知识有一定的初步的了解,如网络OSI七层模型,常用的,如tcp/ip,Http,FTP等,者可以上取些知,一步的了解,有助于Java的程,在此就不些容了.下我主要看一下如何在Java中行程.

?

我在一服器和多客端行通的功能.

1. 使用Eclipse IDE,首先建一java目:MultiThreadSocket 并它承Thread

package pa20110201;import java.net.UnknownHostException;/** *  * @author Liyongbin * @date 02-01-2011 * */public class MultiThreadSocket extends Thread{private Socket socket;     public MultiThreadSocket (Socket socket){       this.socket=socket;     }}

?

2. 在中建方法: server 和 client,分模服器端和客端

      /** * 服器端 */public static void server(){try {//建服器端的套接字(定到8000端口上)ServerSocket ss = new ServerSocket(8000);//我循等待用求while (true) {//返回一套接字Socket sk =ss.accept();//建一程new MultiThreadSocket(sk).start();}//服器端套接字//ss.close();} catch (IOException e) {e.printStackTrace();}}/** * 客端 */static void client(){try {//直接返回IP//Socket s1 = new Socket(InetAddress.getByName("127.0.0.1"),8000);//出流OutputStream os = s1.getOutputStream();//入流InputStream is = s1.getInputStream();//定字byte [] buffer =new byte[1000];//Buffer中取int length = is.read(buffer);//取的打印出System.out.println(new String (buffer,0,length));//往服器端送os.write("I'm zhangshan4!".getBytes());//出流os.close();//入流is.close();//套接字s1.close();} catch (UnknownHostException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}
?

?

3. 重Thread的run方法://行程@Override

//行程@Overridepublic void run() {try {//往客端送OutputStream os = socket.getOutputStream();//上取InputStream is = socket.getInputStream();//送Hello worldos.write("Hello world!".getBytes());//定字byte [] buffer =new byte[1000];//Buffer中取int length = is.read(buffer);//取的打印出System.out.println(new String (buffer,0,length));//出流os.close();//入流is.close();//套接字socket.close();} catch (Exception e) {e.printStackTrace();}}
?

?

4. 一方法

public static void main(String[] args) {if (args.length >0) {server();}else{client();}}
??

5. 目中所要入的包如下

import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.InetAddress;import java.net.ServerSocket;import java.net.Socket;import java.net.UnknownHostException;
?

?

6. 置目的,如所示:

??? 1). Run Configurations, 新建,一是服器(MultiThreadSocket _Server),

????????? 另一是客端(MultiThreadSocket _Client)

?

Java顶用多线程实现网络编程

?

?

?? 2).在服器的上置(任意),客端勿需置,如:

?

Java顶用多线程实现网络编程

?

3).置成功后如所示:

?

Java顶用多线程实现网络编程

?

7.? 置控制的示:

?

Java顶用多线程实现网络编程

?

8. 所有的置均已完成,可以行程序了,

??? 首先行服器端,然後客端,服端只一次,客端可多次,行果如下:

Java顶用多线程实现网络编程

?

?

?

?

?

?

?

读书人网 >编程

热点推荐