==========================================
==鏈嶅姟绔唬鐮侊細(xì)Jserver1.java
==========================================
import java.net.*;
import java.io.*;
public class Jserver1 {
public static void main(String[] args) {
ServerSocket server=null;
try{
server=new ServerSocket(719);//鍦ㄧ鍙?19寤虹珛涓涓湇鍔″櫒濂楁帴瀛楀璞?br />
System.out.println("鏈嶅姟绔瓑寰?);
while(true){
System.out.println("絳夊緟瀹㈡埛鏈?);
Socket newSocket=server.accept();//瀹㈡埛绔悜鎴戜滑寤虹珛鐨勬湇鍔″櫒濂楁帴瀛楀彂閫佽繛鎺ヨ姹?鍒欏悜涓嬫墽琛?br />
System.out.println("宸蹭笌瀹㈡埛鏈鴻繛鎺?);
}
}catch(IOException ie)
{
System.out.println(ie);
}finally{
try
{
if(server!=null) server.close();//鍏抽棴鏈嶅姟鍣ㄥ鎺ュ瓧銆備負(fù)浠涔堣鐢╢inally鍏抽敭瀛楁潵鍋氳繖涓簨鍛紵HOHO thinking in java閲屽ぇ甯堝凡緇忚寰楀緢娓呮浜嗭紝灝辨槸鏃犺鍑虹幇浠涔堝紓甯革紝閮戒繚璇佹垜浠殑鏈嶅姟绔鎺ュ瓧鑳借鍏抽棴銆?br />
}catch(IOException ie){}
}
}
鍢庡槑錛屾庝箞鏍?娉ㄩ噴鍐欏緱澶熸竻妤氫簡鍚э紵OK 璁╂垜浠紪璇戣繍琛岋紝寰楀埌鐨勭粨鏋滃簲璇ュ鍥撅細(xì)
OK 鍐嶈鎴戜滑鏉ョ湅鐪嬪鎴風(fēng)鐨勪唬鐮佹槸鎬庝箞鏍風(fēng)殑錛?br />
==========================================
==瀹㈡埛绔唬鐮侊細(xì)Jclient1.mxml
===================================================
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creati f width="349" height="326">
<mx:Script>
<![CDATA[
import flash.net.Socket;
private var socket:Socket;
internal function initApp():void
{
socket=new Socket();//鍒涘緩Socket瀵硅薄
socket.connect("localhost",719);銆銆//榪炴帴鏈嶅姟鍣?br />
socket.addEventListener(Event.CONNECT,connectFun);//鐩戝惉鏄惁榪炴帴涓婃湇鍔″櫒
socket.addEventListener(Event.CLOSE,closeFun);//鐩戝惉濂楁帴瀛楄繛鎺ユ槸鍚﹀叧闂?br />
}
private function connectFun(event:Event):void
{
jText.text+="宸茬粡鎴愬姛榪炴帴鍒版湇鍔″櫒錛乗n";
}
private function closeFun(event:Event):void
{
jText.text+="鍜屾湇鍔″櫒鏂紑!\n"
}
]]>
</mx:Script>
<mx:TextArea x="10" y="10" width="327" height="309" id="jText"/>
</mx:Application>
鐣岄潰闈炲父綆鍗曞暒錛屽叾瀹炲氨鏄竴涓猅extArea鏉ユ樉紺鴻繛鎺ョ殑緇撴灉鑰屽凡錛岃繍琛岀殑緇撴灉濡備笅鍥撅紙娉ㄦ剰錛屾湇鍔$涔熷簲璇ュ湪榪愯錛侊級(jí)錛?/p>
鍦╝s3.0涓?鎵鏈夊拰緗戠粶閫氫俊鏈夊叧鐨勭被閮戒綅浜巉lash.net鍖呬腑錛岃繖閲屼嬌鐢ㄧ殑鏄疭ocket綾誨璞°?br />
==========================================
==鎴戜滑鏉ヨ緇嗚鏄庝竴涓嬩笂闈㈢敤鍒扮殑Socket綾伙細(xì)
==========================================
Socket瀵硅薄鐨勫父鐢ㄥ垱寤烘柟娉曟湁涓嬮潰2縐嶏細(xì)
var socket:Socket=new Socket();//渚嬩竴
鎴栬?br />
var socket:Socket=new Socket("localhost",719);//渚嬩簩.榪欐潯璇彞璁劇疆浜嗘湇鍔″櫒鍦板潃涓簂ocalhost 绔彛鏄?19
褰撴寚瀹氫簡浜嗘湇鍔″櫒鍦板潃鍜岀鍙o紝Socket瀵硅薄灝嗚嚜鍔ㄥ紑濮嬭繛鎺ユ湇鍔″櫒銆傚鏋滀笉鎸囧畾錛屽垯闇瑕佹潯鐢╟onnect鏂規(guī)硶鎵嶅紑濮嬫墽琛岃繛鎺ュ姩浣滐紝鎰忔濆氨鏄?渚嬩簩鐨勪唬鐮佸拰涓嬮潰鐨勪唬鐮佹槸絳夋晥鐨勶細(xì)
var socket:Socket=new Socket();
socket.connect("localhost",719);
瀹屾垚榪炴帴鍔ㄤ綔鍚庯紝鎺ヤ笅鏉ヨ鑾峰彇鏈嶅姟绔緱榪斿洖淇℃伅銆?br />
Socket瀵硅薄鍜孶RLLOADER鍟婁箣綾葷殑瀵硅薄閮芥槸涓鏍鳳紝鍒╃敤浜嬩歡鏈哄埗鏉ュ鐞嗘湇鍔″櫒绔殑淇℃伅錛屾垜浠彧瑕佺粰Socket瀵硅薄娣誨姞鐩稿叧鐨勪簨浠剁洃鍚嚱鏁板氨鍙互鎹曟崏鍒版湇鍔″櫒绔殑淇℃伅錛孲ocket瀵硅薄鐨勪簨浠朵富瑕佹湁錛?br />
錛戙Event.CLOSE銆榪炴帴涓柇浜嬩歡銆?br />
錛掋Event.CONNECT 榪炴帴鐘舵佷簨浠訛紝琛ㄧず宸茬粡鎴愬姛榪炴帴浜嗘湇鍔″櫒銆?br />
錛撱IOErrorEvent.IO_ERROR銆淇℃伅浼犻掗敊璇簨浠訛紝涓鑸槸鐢辨湇鍔″櫒鍦板潃閿欒寮曡搗鐨勩?br />
錛斻ProgressEvent.SOCKET_DATA銆鏈嶅姟鍣ㄤ俊鎭簨浠訛紝褰撴敹鍒版湇鍔″櫒鐨勬柊淇℃伅鏃惰瑙﹀彂銆?/p>
==========================================
鍝堝搱錛岀粡榪囦笂闈㈢殑浠g爜錛屾垜浠殑鏈嶅姟绔疢M鍜屽鎴風(fēng)GG緇堜簬閫氳繃Socket榪欎釜緙樺垎瀹垮懡鐨勭浉閬囦簡錛佹帴涓嬫潵浼?xì)鍙戠敓浠涔堬紵鎴戜滑緇х畫寰涓嬬湅~~
涓夈佺涓灝佹儏涔︼紙瀹㈡埛绔彂閫佹秷鎭紝鏈嶅姟绔帴鍙楁秷鎭級(jí)
瀹㈡埛绔疓G鍦ㄩ亣鍒版湇鍔$MM浠ュ悗錛岀粓鏃ュ彉寰楄尪楗笉鎬濓紝鍦ㄦ姌紓ㄦ帀浜嗘棤鏁版牴澶村彂浠ュ悗錛屽鎴風(fēng)GG緇堜簬涓嬪畾鍐沖績錛岃鍚戞湇鍔$MM閫佸嚭絎竴灝佹儏涔﹀暒錛?/p>
鏃㈢劧鏄鎴風(fēng)GG閫佸嚭鎯呬功錛岄偅鎴戜滑鍏堟潵鐪嬩粬鍒板簳鏄庝箞鍋氱殑錛?br />
==========================================
==瀹㈡埛绔唬鐮侊細(xì)Jclient2.mxml
==========================================
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" fontSize="12" creationComplete="initApp()">
<mx:Script>
<![CDATA[
import flash.net.Socket;
import flash.utils.ByteArray;
private var socket:Socket=new Socket();銆//瀹氫箟Socket,鍑嗗濂芥儏涔︾殑淇″皝
//鍒濆鍖栫▼搴?br />
internal function initApp():void
{
socket.connect("localhost",719); //榪炴帴鏈嶅姟鍣?br />
socket.addEventListener(Event.CONNECT,funConnect); //鐩戝惉鏄惁榪炴帴
socket.addEventListener(Event.CLOSE,funClose); //鐩戝惉榪炴帴鍏抽棴
}
internal function funConnect(event:Event):void
{
myText.text+="榪炴帴宸插緩绔?\n";
}
internal function funClose(event:Event):void
{
myText.text+="榪炴帴宸插叧闂?\n";
}
internal function sendMessage(msg:String):void//鍙戦佹暟鎹搴旀寜閽甤lick浜嬩歡
{
var message:ByteArray=new ByteArray();//鏂板緩涓涓狟yteArray瀛樻斁鏁版嵁
message.writeUTFBytes(msg +"\r\n");//鍐欏叆鏁版嵁錛寃riteUTFBytes鏂規(guī)硶錛屼互utf-8鏍煎紡浼犳暟鎹伩鍏嶄腑鏂囦貢鐮?br />
socket.writeBytes(message);銆 //鍐欏叆Socket鐨勭紦鍐插尯
socket.flush();銆銆//璋冪敤flush鏂規(guī)硶鍙戦佷俊鎭?br />
myText.text+=msg+"\r\n";銆銆//鍦ㄥ鎴風(fēng)灞忓箷涓婅緭鍑哄彂閫佺殑鍐呭
myInput.text=""; //娓呯┖鍙戣█妗?br />
}
]]>
</mx:Script>
<mx:TextArea x="10" y="10" width="703" height="263" id="loveText"/>
<mx:TextInput x="10" y="297" width="605" id="loveInput"/>
<mx:Button x="648" y="297" label="鍙戦佹儏涔? id="sendBtn" click="sendMessage(loveInput.text)"/>
</mx:Application>
鍢庡槑錛屾儏涔︾殑鍋氭硶灝變笂闈㈤偅闈㈢畝鍗曪紝娉ㄩ噴宸茬粡鍐欏緱寰堟竻妤氫簡錛屽氨涓嶅璇翠簡銆?/p>
OK錛屽鎴風(fēng)GG鐨勬儏涔﹀掓槸閫佸嚭鍘諱簡錛屾垜浠氨鏉ョ湅鐪嬫湇鍔$MM鏄庝箞鎺ュ彈榪欏皝鎯呬功鐨勫憿錛?/p>
OK錛屽鎴風(fēng)GG鐨勬儏涔﹀掓槸閫佸嚭鍘諱簡錛屾垜浠氨鏉ョ湅鐪嬫湇鍔$MM鏄庝箞鎺ュ彈榪欏皝鎯呬功鐨勫憿錛?br />
==========================================
==鏈嶅姟绔唬鐮侊細(xì)Jserver2.java
==========================================
import java.net.*;
import java.io.*;
public class Jserver2{
private BufferedReader reader;銆//璐熻矗杈撳叆
private ServerSocket server;銆銆 //鏈嶅姟鍣ㄥ鎺ュ瓧
private Socket socket;銆銆銆銆銆 //濂楁帴瀛?br />
public Server2(){}銆銆//緙虹渷鏋勯犲嚱鏁?br />
void startServer()銆銆//鍚姩鏈嶅姟鍣?br />
{
try
{
server=new ServerSocket(719);銆銆銆 //鍒涘緩鏈嶅姟鍣ㄥ鎺ュ瓧
System.out.println("鏈嶅姟鍣ㄥ鎺ュ瓧寤虹珛瀹屾瘯");
while(true)
{
銆銆System.out.println("絳夊緟瀹㈡埛绔疓G");
銆銆socket=server.accept();銆//鑻ュ鎴風(fēng)GG鎻愬嚭榪炴帴璇鋒眰錛屼笌socket榪炴帴
銆銆System.out.println("瀹屾垚涓庡鎴風(fēng)鐨勮繛鎺?);
reader=new BufferedReader(new銆InputStreamReader(socket.getInputStream(),"UTF-8")); //鑾峰彇socket杈撳叆嫻侊紝“utf-8”榪欎釜緙栫爜璁劇疆鏄負(fù)浜嗘洿濂芥樉紺轟腑鏂?
getMessage();//璇誨彇鏉ヨ嚜瀹㈡埛绔殑鏁版嵁錛屽茍杈撳嚭鑷崇敾闈笂
}
}catch(Exception e)
{
System.out.println(e);
}finally{
try
{
if(server!=null) server.close();//鍏抽棴鏈嶅姟鍣ㄥ鎺ュ瓧銆?br />
}catch(IOException ie){}
}
}
void getMessage()銆銆//璇誨彇鏉ヨ嚜濂楁帴瀛楃殑淇℃伅
{
try
{
while(true)銆銆銆 //寰幆
{
System.out.println("瀹㈡埛绔疓G璇達(dá)細(xì)"+reader.readLine());
}
}catch(Exception e){}
finally{
System.out.println("瀹㈡埛绔腑鏂繛鎺?);
try
{
if(reader!=null) reader.close();銆//鍏抽棴濂楁帴瀛楃殑杈撳叆嫻?br />
if(socket!=null) socket.close();銆銆//鍏抽棴濂楁帴瀛?br />
reader=null;
socket=null;
}catch(Exception e){}
}
}
public static void main(String[] args)
{
Server2 server=new Server2();
server.startServer();
}
}
鍝堝搱錛屾垜浠繍琛屾潵鐪嬬湅錛屾垜浠殑瀹㈡埛绔疓G鐨勬儏涔﹁兘鍚﹂『鍒╁埌杈炬湇鍔$MM鐨勬墜涓憿錛?br /> 榪愯緇撴灉濡備笅錛?/p>
HOHO 鐪嬫牱瀛愭垜浠殑瀹㈡埛绔疓G鐨勬儏涔︼紝鏈嶅姟绔疢M鏄『鍒╂帴鍙楀埌鍟︺?/p>
鍥涖佹湇鍔$MM鐨勫績鎬濓紙澶氬鎴風(fēng)閫氫俊錛?/p>
鍦ㄦ湇鍔$MM鏀跺埌瀹㈡埛绔疓G鐨勬儏涔︿互鍚庯紝紿佺劧鍙戠幇鑷繁鍘熸潵榪樻槸铔彈嬈㈣繋鐨勫憿銆備絾鏄湁鍙ヤ織璇濊鐨勫ソ錛岄偅灝辨槸“涓嶈兘涓轟簡涓媯墊爲(wèi)鏀懼純涓鐗囨.鏋?#8221;銆傛墍浠ユ湇鍔$MM灝辨兂錛岃兘涓嶈兘澶氭帴鍙楀嚑涓鎴風(fēng)GG鐨勬儏涔﹀憿錛燂紙鐪烼MD璐便傘傘傦級(jí)
OK錛屾棦鐒舵湇鍔$MM鏈変簡榪欎釜闇姹傦紙铏界劧鏄緢璐辯殑闇姹傦級(jí)錛岄偅鎴戜滑灝辮鏉ユ弧瓚沖ス錛?/p>
鏉ョ湅鏈嶅姟绔殑浠g爜:
=========================================
==Jserver3.java
=========================================
import java.net.*;
import java.io.*;
import java.util.*;
public class Jserver3 {
private ServerSocket server;
List sManager = new ArrayList();
public Jserver3(){}
void startServer()銆//榪愯鏈嶅姟鍣?br />
{
try
{
server=new ServerSocket(719);
System.out.println("鏈嶅姟鍣ㄥ鎺ュ瓧宸插垱寤烘垚鍔燂紒");
while(true)
{
Socket socket=server.accept();
System.out.println("宸茬粡涓庡鎴風(fēng)榪炴帴");
new J_Thread(socket).start();
sManager.add(socket);
System.out.println("褰撳墠瀹㈡埛绔繛緇撴暟錛?+sManager.size());
}
}catch(Exception e){}finally
{
try
{
server.close();
}catch(Exception e){}
}
}
public static void main(String[] args) {
Jserver3 server=new Jserver3();
server.startServer();
}
class J_Thread extends Thread銆銆//涓庡鎴風(fēng)榪涜閫氫俊鐨勭嚎紼嬬被
{
Socket socket;銆銆 //濂楁帴瀛楀紩鐢ㄥ彉閲?br />
private DataInputStream reader;銆銆 //濂楁帴瀛楄緭鍏ユ祦
private DataOutputStream writer;銆 //濂楁帴瀛楄緭鍑烘祦
J_Thread(Socket socket)銆銆 //鏋勯犲嚱鏁?br />
{
this.socket=socket;
}
public void run()
{
try
{
reader=new DataInputStream(socket.getInputStream());//鑾峰彇濂楁帴瀛楃殑杈撳叆嫻?br />
writer=new DataOutputStream(socket.getOutputStream());//鑾峰彇濂楁帴瀛楃殑杈撳嚭嫻?br />
String msg;
while((msg=reader.readUTF())!=null)//濡傛灉鏀跺埌瀹㈡埛绔彂鏉ョ殑鏁版嵁
{
//鍚戝鎴風(fēng)鍙戦佷俊鎭?br />
writer.writeUTF("鎮(zhèn)ㄧ殑鎯呬功宸茬粡鏀跺埌");
writer.flush();
System.out.println("鏉ヨ嚜瀹㈡埛绔細(xì)"+msg);
}
}catch(Exception e){}finally
{
try
{
sManager.remove(socket); 銆//鍒犻櫎濂楁帴瀛?br />
//鍏抽棴杈撳叆杈撳嚭嫻佸強(qiáng)濂楁帴瀛?br />
if(reader!=null)reader.close();
if(writer!=null)writer.close();
if(socket!=null)socket.close();
reader=null;
writer=null;
socket=null;
System.out.println("瀹㈡埛绔寮");//鍚戝睆騫曡緭鍑虹浉鍏充俊鎭?br />
System.out.println("褰撳墠瀹㈡埛绔殑榪炴帴鏁幫細(xì)"+sManager.size());
}catch(Exception e){}
}
}
}
}
鍢庡槑 鍦ㄨ繖孌典唬鐮侀噷錛屾湇鍔$MM涓烘瘡涓涓繛鎺ョ殑瀹㈡埛绔疓G鍒嗛厤涓涓崟鐙殑綰跨▼錛岃屾瘡涓涓嚎紼嬮噷閮芥寔鏈夊搴旂殑瀹㈡埛绔疓G鐨凷ocket瀵硅薄銆係O錛岄氳繃榪欎簺澶氱嚎紼嬶紝鏈嶅姟绔疢M灝辯粌?yōu)兒嗕竴蹇僋鐢ㄧ殑鍔熷姏錛屽彲浠ュ悓鏃舵帴鍙桸涓鎴風(fēng)GG鍙戞潵鐨勬儏涔︿簡錛?錛岀湡鐨勫お璐變簡銆傘傘傘傦級(jí)
瀹㈡埛绔殑浠g爜鍜屼笂闈㈢殑瀹㈡埛绔唬鐮佷竴妯′竴鏍風(fēng)殑錛岃繖閲屽氨涓嶅璇村暒錛?/p>
濂戒簡錛屽湪榪欓噷灝辯畝鍗曠殑緇欏ぇ瀹朵粙緇嶄簡濡備綍瀹炵幇java鍜宖lash錛坒lex錛夊疄鐜皊ocket閫氫俊鐨勭畝鍗曞姛鑳姐傛湁鏃墮棿鐨勮瘽錛屽啀緇欏ぇ瀹舵潵涓畝鍗曠殑鑱婂ぉ瀹ゅ疄鐜幫紙閭d釜鏃跺欑殑鏈嶅姟绔疢M灝辨洿璐變簡錛屼笉浠呮敹鐫N澶氬鎴風(fēng)GG鐨勬儏涔︼紝绔熺劧榪樻妸鎯呬功騫挎挱緇欐墍鏈夌殑瀹㈡埛绔疓G錛孊S錛侊級(jí)銆傚槑鍢?鍏跺疄鍘熺悊灝辨槸涓婇潰鎵璇寸殑榪欎簺錛屽ぇ瀹惰嚜宸遍兘鍙互灝濊瘯涓嬨?/p>