西西軟件園多重安全檢測下載網(wǎng)站、值得信賴的軟件下載站!
西西首頁 電腦軟件 安卓軟件 電腦游戲 安卓游戲 排行榜 專題合集

java socket服務(wù)端

  • java socket服務(wù)端
  • 軟件大小:2KB
  • 更新時(shí)間:2013-08-16 10:46
  • 軟件語言:中文
  • 軟件廠商:
  • 軟件類別:國產(chǎn)軟件 / 免費(fèi)軟件 / 編程輔助
  • 軟件等級(jí):2級(jí)
  • 應(yīng)用平臺(tái):WinAll, WinXP
  • 官方網(wǎng)站:暫無
  • 應(yīng)用備案:
好評(píng):50%
壞評(píng):50%

軟件介紹

一對(duì)一的服務(wù)端和客戶機(jī):一個(gè)服務(wù)端只能同時(shí)服務(wù)一個(gè)客戶端

服務(wù)端:

import java.io.*;
import java.net.*;

public class MyServer {
public static void main(String[] args) throws IOException{
ServerSocket server=new ServerSocket(5678);
Socket client=server.accept();
BufferedReader in=new BufferedReader(new InputStreamReader(client.getInputStream()));
PrintWriter out=new PrintWriter(client.getOutputStream());
while(true){
String str=in.readLine();
System.out.println(str);
out.println("has receive....");
out.flush();
if(str.equals("end"))
break;
}
client.close();
}
}

accept()方法說明:
public Socket accept() throws IOException
Listens for a connection to be made to this socket and accepts it. The method blocks until a connection is made.
A new Socket s is created and, if there is a security manager, the security manager's checkAccept method is called with s.getInetAddress().getHostAddress() and s.getPort() as its arguments to ensure the operation is allowed. This could result in a SecurityException.

客戶端

import java.net.*;
import java.io.*;

public class Client{
static Socket server;

public static void main(String[] args)throws Exception{
server=new Socket(InetAddress.getLocalHost(),5678);
BufferedReader in=new BufferedReader(new InputStreamReader(server.getInputStream()));
PrintWriter out=new PrintWriter(server.getOutputStream());
//標(biāo)準(zhǔn)輸入
BufferedReader wt=new BufferedReader(new InputStreamReader(System.in));

while(true){
String str=wt.readLine();
out.println(str);
out.flush();
if(str.equals("end")){
break;
}
System.out.println(in.readLine());
}
server.close();
}
}

一對(duì)多的服務(wù)端和客戶機(jī):一個(gè)服務(wù)端只能同時(shí)服務(wù)多個(gè)客戶端,需要使用多線程來實(shí)現(xiàn)

服務(wù)端:調(diào)用具體的處理線程完成處理
import java.io.*;
import java.net.*;

public class MyMultiServer {
public static void main(String[] args) throws IOException{
ServerSocket server=new ServerSocket(5678);
while (true){
Socket client=server.accept();
ChildTh child=new ChildTh(client);//用socket實(shí)例初始化具體的處理線程對(duì)象
//使用Runnable接口和使用extends Thread的區(qū)別:
// 如果是使用Runnable接口,需要這么寫:
new Thread(child).start();
//注意:不能寫成:child.run();
// 如果使用extends Thread,只需要child.start()就可以,因?yàn)閟tart()是Thread的方法
}
}
}

處理線程類:
import java.io.*;
import java.net.*;
public class ChildTh implements Runnable{
private Socket client;
public ChildTh(Socket client){
this.client=client;
}

public void run(){
try{
BufferedReader in=new BufferedReader(new InputStreamReader(client.getInputStream()));
PrintWriter out=new PrintWriter(client.getOutputStream());
while(true){
String str=in.readLine();
System.out.println(str);
out.println("has receive....");
out.flush();
if(str.equals("end"))
break;
}

client.close();
}catch(Exception e){
System.out.println("error in the close the socket!");
e.printStackTrace();
}
finally{

}
}

}

客戶端:
import java.net.*;
import java.io.*;

public class Client{
static Socket server;

public static void main(String[] args)throws Exception{
server=new Socket(InetAddress.getLocalHost(),5678);
BufferedReader in=new BufferedReader(new InputStreamReader(server.getInputStream()));
PrintWriter out=new PrintWriter(server.getOutputStream());
//標(biāo)準(zhǔn)輸入
BufferedReader wt=new BufferedReader(new InputStreamReader(System.in));

while(true){
String str=wt.readLine();
out.println(str);
out.flush();
if(str.equals("end")){
break;
}
System.out.println(in.readLine());
}
server.close();
}
}
軟件標(biāo)簽: socket

其他版本下載

發(fā)表評(píng)論

昵稱:
表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
查看所有(0)條評(píng)論 > 字?jǐn)?shù): 0/500

TOP
軟件下載