淺談JAVA中如何利用socket進行網絡編程(二)
作者:佚名
所謂socket通常也稱作"套接字",用于描述IP地址和端口,是一個通信鏈的句柄。應用程序通常通過"套接字"向網絡發出請求或者應答網絡請求。 本文介紹的是JAVA中的socket網絡編程,希望對你有幫助,一起來看。
Socket是網絡上運行的兩個程序間雙向通訊的一端,它既可以接受請求,也可以發送請求,利用它可以較為方便的編寫網絡上的數據的傳遞。在java中,有專門的socket類來處理用戶的請求和響應。利用SOCKET類的方法,就可以實現兩臺計算機之間的通訊。這里就介紹一下在JAVA中如何利用socket進行網絡編程。
接第一篇淺談JAVA中如何利用socket進行網絡編程(一)
在上一篇中我們已經和大家說到客戶端的網絡編程,下面和大家分享的是服務器的實現代碼。
- import java.net.*;
- import java.io.*;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- public class talkServer
- { public static void main(String[] args)
- { try
- { file://建立服務器
- ServerSocket server = new ServerSocket(9998);
- int i=1;
- for(;;)
- { Socket incoming = server.accept();
- new ServerThread(incoming,i).start();
- i++;
- }
- }catch (IOException ex){
- ex.printStackTrace();
- }
- }
- }
- class ServerThread extends Thread implements ActionListener
- {
- private int threadNum;
- private Socket socket;
- talkServerFrm t;
- BufferedReader in;
- PrintWriter out;
- private boolean talking=true;
- public ServerThread(Socket s,int c)
- { threadNum = c;
- socket = s;
- }
- public void actionPerformed(ActionEvent e)
- { Object source = e.getSource();
- try{
- if(source==t.btnSend)
- { out.println(t.getTalk());
- t.clearTalk();
- }else
- if(source==t.btnEnd)
- { out.println("談話過程被對方終止");
- out.close();
- in.close();
- talking = false;
- }
- }catch(IOException ex){
- }
- }
- public void run()
- { try{
- t=new talkServerFrm(new Integer(threadNum).toString(),this);
- t.setSize(500,500);
- t.show();
- in = new BufferedReader(new
- InputStreamReader(socket.getInputStream()));
- out = new PrintWriter(socket.getOutputStream(),true);
- }catch(Exception e){
- }
- new Thread()
- { public void run()
- { try{
- while(true)
- { checkInput();
- sleep(1000);
- }
- }catch (InterruptedException ex){
- }catch(IOException ex){
- }
- }
- }.start();
- while(talking)
- { }
- t.dispose();
- }
- private void checkInput() throws IOException
- { String line;
- if((line=in.readLine())!=null)
- t.setPartner(line); file://這是界面類里的方法,
- file://用來將line的內容輸出到用戶界面
- }
- }
到此,java中的socket網絡編程就給大家介紹完啦!希望對大家有幫助。
【編輯推薦】
責任編輯:于鐵
來源:
互聯網