⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 program5.txt

📁 Java多线程机制的源码包括线程控制方法、多线程实现方法 、如何用接口来创建线程、输入输出流类、创建目录和删除文件
💻 TXT
📖 第 1 页 / 共 4 页
字号:
                System.out.println("Please enter a hostname:");
        }
        catch(UnknownHostException e)
        {
            e.printStackTrace();
        }
    }
}	

_____________________________________________________
_____________________________________________________

5.3.2 Socket类和ServerSocket类

//客户端程序ClientTest.java
import java.io.*;
import java.net.*;
public class ClientTest 
{
    public static void main(String[] args) 
    {
        try 
        {
            String s;
            String line="";
            Socket mySocket = new Socket(InetAddress.getLocalHost(),800);
            PrintStream os = new PrintStream( new BufferedOutputStream(mySocket.getOutputStream()));
            DataInputStream dis = new DataInputStream(mySocket.getInputStream());
            s = dis.readLine();//从Server端读入的数据
            System.out.println(s);                 
            BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
            line = in.readLine();
            while(!line.equals("Bye"))
            {
                os.println(line);
                os.flush();
                line = in.readLine();               	
            }
            os.close();
            dis.close();
            mySocket.close();                    
        }
       
        catch (IOException e) 
        {
            System.out.println("ClientException"+e);
        } 
    }
}

————————————————————————————

//服务器端程序ServerTest.java
import java.io.*;
import java.net.*;
public class ServerTest 
{
    public static void main(String[] args) 
    {
        try 
        {
            boolean flag = true;
            Socket linkSocket = null;
            String inputLine;
            ServerSocket myServer = new ServerSocket(800);
            System.out.println("Server listen on:"+myServer.getLocalPort());
            while(flag)
            {
                linkSocket = myServer.accept();
                DataInputStream dis = new DataInputStream(new BufferedInputStream(linkSocket.getInputStream()));
                //获得从Client读入的数据流
                PrintStream ps = new PrintStream(new BufferedOutputStream(linkSocket.getOutputStream()));
                //获得向Client输出的数据流
                ps.println("Hello! Wellcome connect to my server!");
                ps.flush();//向Client端输出信息
                inputLine = dis.readLine();//从Client读入信息
                while(!inputLine.equals("Bye"))
                {
                    System.out.println("Client端输入的信息为:"+inputLine);
                    inputLine = dis.readLine();   
                }
                ps.close();
                dis.close();
                linkSocket.close();  	
                myServer.close();            
            }
        } 
        catch (IOException e) 
        {
            System.out.println("ServerException"+e);
        } 
    }
} 

————————————————————————————

//多线程服务器端程序ServerMulti.java
import java.io.*;
import java.net.*;
public class ServerMulti
{
    ServerMulti()
    {
        try 
        {
            boolean flag = true;
            Socket links = null;
            ServerSocket myServer = new ServerSocket(800);
            System.out.println("Server listen on:"+myServer.getLocalPort());
            while(flag)
            {
                links = myServer.accept();
                ServiceThread myST = new ServiceThread(links);
                myST.start();
            }
        } 
        catch (IOException e) 
        {
            System.out.println("ServerException"+e);
        }  
    }
    public static void main(String[] args) 
    {
        new ServerMulti();
    }
}    
class ServiceThread extends Thread
{     
    Socket linkSocket;
    String inputLine;
    public ServiceThread(Socket ls)
    {
        linkSocket = ls;      
    }
    public void run()
    {
        try
        {
            DataInputStream dis = new DataInputStream(new BufferedInputStream(linkSocket.getInputStream()));
            PrintStream ps = new PrintStream(new BufferedOutputStream(linkSocket.getOutputStream()));
            ps.println("Hello! Wellcome connect to my server!");
            ps.flush();//向Client端输出信息
            inputLine = dis.readLine();//从Client读入信息
            while(!inputLine.equals("Bye"))
            {
                System.out.println("Client端输入的信息为:"+inputLine);
                inputLine = dis.readLine();   
            }
            ps.close();
            dis.close();
            linkSocket.close();
        }
        catch (IOException e) 
        {
            System.out.println("ServerException"+e);
        } 
    }
}

___________________________________________________
___________________________________________________

//UDP服务器端程序UDPServer .java
import java.io.*; 
import java.net.*; 
class UDPServer 
{ 
    public static void main(String args[]) throws Exception 
    { 
        DatagramSocket serverSocket = new DatagramSocket(9876); 
        byte[] receiveData = new byte[1024]; 
        byte[] sendData  = new byte[1024]; 
        while(true) 
        { 
            DatagramPacket receivePacket = 
            new DatagramPacket(receiveData, receiveData.length); 
            serverSocket.receive(receivePacket); 
            String sentence = new String(receivePacket.getData()); 
            InetAddress IPAddress = receivePacket.getAddress(); 
            int port = receivePacket.getPort(); 
            String capitalizedSentence = sentence.toUpperCase(); 
            sendData = capitalizedSentence.getBytes(); 
            DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, port); 
            serverSocket.send(sendPacket); 
        }
    } 
} 

___________________________________________________

UDP客户端程序UDPClient.java
import java.io.*; 
import java.net.*; 
class UDPClient 
{ 
    public static void main(String args[]) throws Exception 
    { 
        BufferedReader inFromUser = 
        new BufferedReader(new InputStreamReader(System.in)); 
        DatagramSocket clientSocket = new DatagramSocket(); 
        //  InetAddress IPAddress = InetAddress.getLocalHost("hostname"); 
        byte[] sendData = new byte[1024]; 
        byte[] receiveData = new byte[1024]; 
        String sentence = inFromUser.readLine(); 
        sendData = sentence.getBytes();         
        DatagramPacket sendPacket = 
            new DatagramPacket(sendData, sendData.length,InetAddress.getLocalHost(), 9876); 
        clientSocket.send(sendPacket); 
        DatagramPacket receivePacket = 
            new DatagramPacket(receiveData, receiveData.length); 
        clientSocket.receive(receivePacket); 
        String modifiedSentence = 
            new String(receivePacket.getData()); 
        System.out.println("FROM SERVER:" + modifiedSentence); 
        clientSocket.close(); 
    } 
} 



___________________________________________________
___________________________________________________

//URLTest.java

import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.io.*;
public class URLTest
{  public static void main(String args[])
   {  new NetWin();
   }
}
class NetWin extends Frame 
implements ActionListener,Runnable
{  Button button;
   URL url;
   TextField text;
   TextArea area; 
   byte b[]=new byte[118];
   Thread thread;
   NetWin()
   {  text=new TextField(20);
      area=new TextArea(12,12);
      button=new Button("确定");
      button.addActionListener(this);
      thread=new Thread(this);
      Panel p=new Panel();
      p.add(new Label("输入网址:"));
      p.add(text); 
      p.add(button);
      add(area,BorderLayout.CENTER);
      add(p,BorderLayout.NORTH);
      setBounds(60,60,360,300);
      setVisible(true);
      validate();
      addWindowListener(new WindowAdapter()
                      {   public void windowClosing(WindowEvent e)
                           { System.exit(0);
                           }
                      });
   }
   public void actionPerformed(ActionEvent e)
   { 
      if(!(thread.isAlive())) 
         thread=new Thread(this);
      try{
           thread.start();
         }
      catch(Exception ee)
         { text.setText("我正在读取"+url);
         }
   }
  public void run()
   {    try {    int n=-1;
                 area.setText(null);
                 url=new URL(text.getText().trim());
                 InputStream in=url.openStream();
                 while((n=in.read(b))!=-1)
                 {   String s=new String(b,0,n);
                     area.append(s);    
                 }
            }
          catch(MalformedURLException e1)
           {     text.setText(""+e1);
                 return;
           }
          catch(IOException e1)
           {     text.setText(""+e1);
                 return;
           }  
   }
}

___________________________________________________
___________________________________________________

//URLHtml.java

import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.io.*;
import javax.swing.JEditorPane;
public class URLHtml
{   public static void main(String args[])
    {  new Win();
    }
}
class Win extends Frame 
implements ActionListener,Runnable
{  Button button;
   URL url;
   TextField text;
   JEditorPane editPane; 
   byte b[]=new byte[118];
   Thread thread;
   public Win()
   {  text=new TextField(20);
      editPane=new JEditorPane();
      editPane.setEditable(false);
      button=new Button("确定");
      button.addActionListener(this);
      thread=new Thread(this);
      Panel p=new Panel();
      p.add(new Label("输入网址:"));
      p.add(text); 
      p.add(button);
      ScrollPane scroll=new  ScrollPane();
      scroll.add(editPane);
      add(scroll,BorderLayout.CENTER);
      add(p,BorderLayout.NORTH);
      setBounds(160,60,360,300);
      setVisible(true);
      validate();
      addWindowListener(new WindowAdapter()
                      {   public void windowClosing(WindowEvent e)
                           { System.exit(0);
                           }
                      });
   }
   public void actionPerformed(ActionEvent e)
   {  if(!(thread.isAlive())) 
         thread=new Thread(this);
      try{ thread.start();
         }
      catch(Exception ee)
         { text.setText("我正在读取"+url);
         }
   }
  public void run()
   {   try {  int n=-1;
              editPane.setText(null);
              url=new URL(text.getText().trim());
              editPane.setPage(url);
           }
          catch(Exception e1)
           {  text.setText(""+e1);
              return;
           }
   }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -