Java中的網絡編程是一個很重要的部分
下面先介紹在Java中怎樣用socket進行客戶與服務器通信
一
在Java中用socket進行客戶/服務器之間的通信編程
要想與服務器通信必須具備三個條件
在Java中
·Socket類的實例代表客戶與服務器連接成功
try{
ServerSocket myServerSocket=new ServerSocket(
Socket my
}catch(Exception e){}
在上面的代碼中
ServerSocket myServerSocket=new ServerSocket(
在Java程序中如果每次構造ServerSocket時都能保持捕捉異常事件
Socket my
Accept()方法直到接收到用戶的連接請求
最後
try{
Socket mySocket=new Socket(
}catch(Exception e ){}
通過上面的代碼可能看出
二
通話器服務器:
import
import java
import java
public class myserver{
public static void main(String args[]){
ServerSocket server;
Socket socket;
String s;
InputStream Is;
OutputStream Os;
DataInputStream DIS;
PrintStream PS;
try{
//在端口
server=new ServerSocket(
socket=server
System
System
System
//獲得對應Socket的輸入/輸出流
Is=socket
Os=socket
//建立數據流
DIS=new DataInputStream(Is);
PS=new PrintStream(Os);
DataInputStream in=new DataInputStream(System
while(true){
System
System
System
s=DIS
System
if(s
System
s=in
PS
if(s
}
//關閉連接
DIS
PS
Is
Os
socket
}
catch(Exception e){
System
}
}
}
通話器客戶端
import
import java
import java
public class myclient{
public static void main(String args[]){
if (args
System.out.println("you forget the name of the server!");
System.out.println("see also: myclient yxf");
System.exit(1); //如果沒加參數就退出
}
Socket socket;
String s="";
String len;
InputStream Is;
OutputStream Os;
DataInputStream DIS;
PrintStream PS;
try{
//向主機名為args[0]的服務器申請連接
//注意端口號要與服務器保持一致:4321
socket=new Socket(args[0],4321);
System.out.println("client ok");
System.out.println("************************************************");
System.out.println("");
//獲得對應socket的輸入/輸出流
Is=socket.getInputStream();
Os=socket.getOutputStream();
//建立數據流
DIS=new DataInputStream(Is);
PS=new PrintStream(Os);
DataInputStream in=new DataInputStream(System.in);
while(true){
System.out.print("you say:");
s=in.readLine(); //讀取用戶輸入的字符串
PS.println(s); //將讀取得字符串傳給server
if(s.trim().equals("BYE"))break; //如果是"BYE",就退出
else
{
System.out.println("");
System.out.println("please wait server's message...");
System.out.println("");
}
s=DIS.readLine(); //從服務器獲得字符串
System.out.println("server said:"+s); //打印字符串
if(s.trim().equals("BYE"))break; //如果是"BYE",就退出
}
//關閉連接
DIS.close(); //關閉數據輸入流
PS.close(); //關閉數據輸出流
Is.close(); //關閉輸入流
Os.close(); //關閉輸出流
socket.close(); //關閉socket
}
catch(Exception e){
System.out.println("Error:"+e);
}
}
}
From:http://tw.wingwit.com/Article/program/Java/hx/201311/25869.html