Java網絡通訊示例

##編寫javaSocket編程的幾種結構java

  • 直接使用Socket編程實現
  • 使用Socket,再結合java的多線程編程
  • 使用NIO中的非阻塞(Non Blocking) Socket再結合java的多線程編程
  • 使用Jdk自帶的或者第三方的線程池技術對線程進行管理,提升多線程的執行效率
  • 使用開源的java Socket開發框架,例如:mina和cindy框架。

Java網絡編程主要使用java.net包編程

##執行演示網絡代碼的時候,要先運行服務端,再運行客戶端。服務器

###服務端:網絡

public class TCPserver{
	static void print(String str){
		System.out.println(str);
	}
	public static void main(String[]args){
		print("服務器開啓成功!");
		java.net.ServerSocket server;
		java.net.Socket client;
		try{
			server=new java.net.ServerSocket(5555);
		//	while(true){
				client=server.accept();
				print("一個客戶端鏈接成功!");
				//接受客戶端的信息
				java.io.DataInputStream dis=new java.io.DataInputStream(client.getInputStream());
				String str= dis.readUTF();
				print(str);
				//給客戶端發送信息!
				java.io.DataOutputStream dos=new java.io.DataOutputStream(client.getOutputStream());
				dos.writeUTF("你鏈接成功了!");
				dis.close();
				dos.close();
				client.close();
				print("客戶端斷開鏈接!");
		//	}
		}catch(java.io.IOException ex){
			ex.printStackTrace();
		}
	}
}

###客戶端多線程

public class  TCPclient{
	static void print(String str){
		System.out.println(str);
	}
	public static void main(String[] args) 
	{
		print("客戶端開啓成功!");
		try{
			java.net.Socket client=new java.net.Socket("127.0.0.1",5555);
			print("客戶端鏈接成功!");
			String str=javax.swing.JOptionPane.showInputDialog(null,"請輸入您要發送的內容!","提示",0);
			//給服務端發送信息
			java.io.DataOutputStream dos=new java.io.DataOutputStream(client.getOutputStream());
			dos.writeUTF(str);
			//接受服務端的信息
			java.io.DataInputStream dis=new java.io.DataInputStream(client.getInputStream());
			print(dis.readUTF());
			dos.close();
			dis.close();
			client.close();
			print("客戶端鏈接斷開!");
		}
		catch(java.io.IOException ex){
			ex.printStackTrace();
		}
	}
}
相關文章
相關標籤/搜索