flash同java网络通讯----了解scoket (一)

Scoket通信属于网络底层通信 ,它是网络编程中最常用的概念和工具。在TCP/IP网络中 ,由于使用Scoket,能够在网络中处理复杂数据 ,所以在各种网络应用程序中 ,涉及到数据传送和接收 ,一般都会使用Scoket。

大家都知道flash scoket 通讯会用到843安全端口,以下是一个简单的例子,传统方法。

1.java端:

  1. <p>import java.io.BufferedReader; 
  2. import java.io.IOException; 
  3. import java.io.InputStreamReader; 
  4. import java.io.PrintWriter; 
  5. import java.io.UnsupportedEncodingException; 
  6. import java.net.ServerSocket; 
  7. import java.net.Socket;</p><p>/** 
  8. * 游戏843安全端口服务器,用来处理flash socket访问权限请求 
  9. * @author hxc 
  10. * */ 
  11. public class Server843 extends Thread { 
  12. private static ServerSocket server;// 
  13. static final int BINDPORT = 843;//安全端口 
  14. private static boolean en = true;</p><p> public void run() { 
  15.   try { 
  16.    server = new ServerSocket(BINDPORT);//建立一个服务端 
  17.   } catch (IOException e) { 
  18.    e.printStackTrace(); 
  19.   }</p><p>  while (en) { 
  20.    Socket socket; 
  21.    try { 
  22.     socket = server.accept();//等待连接请求 
  23.     new MyThread(socket).start();//处理连接请求 
  24.    } catch (IOException e) { 
  25.     e.printStackTrace(); 
  26.    } 
  27.   } 
  28. }</p><p> class MyThread extends Thread {</p><p>  private Socket socket;</p><p>  public MyThread(Socket socket) { 
  29.    this.socket = socket
  30.   }</p><p>  public void run() {</p><p>   String xml = "<cross-domain-policy>" 
  31.      + "<allow-access-from domain=\"*\" to-ports=\"*\"/>
  32.      + "</cross-domain-policy>"; 
  33.    try { 
  34.     BufferedReader br = new BufferedReader(new InputStreamReader( 
  35.       socket.getInputStream(), "utf8")); 
  36.     PrintWriter pw = new PrintWriter(socket.getOutputStream(), true); 
  37.     char[] by = new char[22]; 
  38.     br.read(by, 0, 22);//等待对方请求策略文件权限 
  39.     String head = new String(by); 
  40.     if (head.equals("<policy-file-request/>")) {//请求的连接内容是策略文件权限 
  41.      pw.print(xml + "\0"); 
  42.      pw.flush(); 
  43.      socket.close(); 
  44.     } 
  45.    } catch (UnsupportedEncodingException e) { 
  46.     e.printStackTrace(); 
  47.    } catch (IOException e) { 
  48.     e.printStackTrace(); 
  49.    } 
  50.   } 
  51.   
  52.     public static void main(String args[]){ 
  53.      new Server843().run(); 
  54.     } 
  55. </p> 

import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.io.UnsupportedEncodingException; import java.net.ServerSocket; import java.net.Socket;

/** * 游戏843安全端口服务器,用来处理flash socket访问权限请求 * @author hxc * */ public class Server843 extends Thread { private static ServerSocket server;// static final int BINDPORT = 843;//安全端口 private static boolean en = true;

public void run() { try { server = new ServerSocket(BINDPORT);//建立一个服务端 } catch (IOException e) { e.printStackTrace(); }

while (en) { Socket socket; try { socket = server.accept();//等待连接请求 new MyThread(socket).start();//处理连接请求 } catch (IOException e) { e.printStackTrace(); } } }

class MyThread extends Thread {

private Socket socket;

public MyThread(Socket socket) { this.socket = socket; }

public void run() {

String xml = "<cross-domain-policy>" + "<allow-access-from domain=\"*\" to-ports=\"*\"/>" + "</cross-domain-policy>"; try { BufferedReader br = new BufferedReader(new InputStreamReader( socket.getInputStream(), "utf8")); PrintWriter pw = new PrintWriter(socket.getOutputStream(), true); char[] by = new char[22]; br.read(by, 0, 22);//等待对方请求策略文件权限 String head = new String(by); if (head.equals("<policy-file-request/>")) {//请求的连接内容是策略文件权限 pw.print(xml + "\0"); pw.flush(); socket.close(); } } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } } public static void main(String args[]){ new Server843().run(); } }

flash as端很简单就不写了。

 

转自:http://blog.csdn.net/xianchanghuang/article/details/8086769

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值