zoukankan
html css js c++ java
Flex Socket 与 C# 通信
Flex
<?
xml version="1.0" encoding="utf-8"
?>
<
mx:Application
xmlns:mx
="http://www.adobe.com/2006/mxml"
layout
="absolute"
>
<
mx:Script
>
<![CDATA[
import mx.controls.Alert;
/////////////////////////////////
//private member
private var xmlsocket:XMLSocket= new XMLSocket();
private var alert:Alert;
private var tmpStr:String;
/////////////////////////////////
//连接服务器
private function ConncetServer():void
{
xmlsocket.addEventListener(DataEvent.DATA,OnRecived);
xmlsocket.addEventListener(Event.CONNECT , onConnected);
this.xmlsocket.connect(this.txtIP.text,int(this.txtPort.text));
}
private function onConnected(evt:Event):void
{
xmlsocket.send(this.txtTrueName.text+" has connected");
this.txtContent.text=this.txtContent.text+"连接成功\n";
}
//发送信息
private function Send():void
{
this.xmlsocket.send(this.txtTrueName.text+"|"+this.txtSendContent.text+"\n");
}
//接收数据
private function OnRecived(event:DataEvent):void
{
trace("等待读取数据信息");
tmpStr = event.text;
//alert=Alert.show("收到新消息","消息");
this.txtContent.text=this.txtContent.text+"\n"+tmpStr;
}
]]>
</
mx:Script
>
<
mx:Panel
layout
="absolute"
right
="0"
left
="0"
top
="0"
bottom
="0"
horizontalAlign
="left"
>
<
mx:TextInput
cornerRadius
="20"
themeColor
="#0D79BE"
borderColor
="#070D04"
borderStyle
="inset"
borderThickness
="1"
id
="txtIP"
text
="192.168.1.55"
left
="88"
top
="23"
/>
<
mx:TextInput
cornerRadius
="20"
themeColor
="#0D79BE"
borderColor
="#070D04"
borderStyle
="inset"
borderThickness
="1"
width
="94"
id
="txtPort"
text
="9992"
left
="293"
top
="23"
/>
<
mx:TextInput
cornerRadius
="20"
themeColor
="#0D79BE"
borderColor
="#070D04"
borderStyle
="inset"
borderThickness
="1"
width
="94"
id
="txtTrueName"
text
="小虎"
left
="432"
top
="23"
/>
<
mx:Label
text
="服务器IP"
fontSize
="12"
left
="15"
top
="23"
/>
<
mx:Label
text
="姓名"
fontSize
="12"
left
="395"
top
="23"
/>
<
mx:Label
text
="端口"
fontSize
="12"
left
="256"
top
="23"
/>
<
mx:Button
label
="登录"
fontSize
="12"
id
="btnLogin"
left
="552"
top
="23"
click
="ConncetServer()"
/>
<
mx:Button
label
="发送"
fontSize
="12"
id
="btnSend"
left
="552"
top
="68"
click
="Send();"
/>
<
mx:TextInput
borderColor
="#04010C"
backgroundColor
="#EEDBFC"
width
="516"
borderStyle
="inset"
cornerRadius
="20"
alpha
="1.0"
id
="txtSendContent"
left
="10"
top
="70"
/>
<
mx:TextArea
borderColor
="#010A10"
id
="txtContent"
left
="10"
top
="110"
right
="10"
bottom
="10"
backgroundColor
="#DEEEF3"
cornerRadius
="12"
/>
</
mx:Panel
>
</
mx:Application
>
C#
using
System;
using
System.Collections.Generic;
using
System.ComponentModel;
using
System.Data;
using
System.Drawing;
using
System.Text;
using
System.Windows.Forms;
using
System.Net;
using
System.Net.Sockets;
using
System.Threading;
namespace
Server
{
public
partial
class
Form1 : Form
{
private
bool
ServiceStartFlag
=
false
;
private
Socket m_Socket;
NetworkStream networkStream;
Thread m_Thread;
public
delegate
void
HelpHandler(
string
str);
public
Form1()
{
InitializeComponent();
btnStart.Enabled
=
true
;
btnStop.Enabled
=
false
;
}
private
void
btnStart_Click(
object
sender, EventArgs e)
{
int
Port
=
int
.Parse(txtPort.Text);
m_Socket
=
new
Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPAddress LocalServerIP
=
GetIPAddress();
IPEndPoint LocalIPEndPoint
=
new
IPEndPoint(LocalServerIP, Port);
m_Socket.Bind(LocalIPEndPoint);
m_Socket.Listen(
600
);
m_Thread
=
new
Thread(
new
ThreadStart(AcceptClient));
m_Thread.IsBackground
=
true
;
m_Thread.Start();
}
private
void
AcceptClient()
{
ServiceStartFlag
=
true
;
while
(ServiceStartFlag)
{
try
{
Socket newSocket
=
m_Socket.Accept();
string
onemessge
=
"
<cross-domain-policy><allow-access-from domain=\
""
+
"
*
"
+
"
\
"
to-ports=\
""
+ txtPort.Text +
"
\
"
/></cross-domain-policy>\0
"
;
byte
[] tmpBytes
=
Encoding.UTF8.GetBytes(onemessge);
newSocket.Send(tmpBytes);
Thread newThread
=
new
Thread(
new
ParameterizedThreadStart(ReadMsg));
newThread.IsBackground
=
true
;
object
obj
=
newSocket;
newThread.Start(obj);
}
catch
(SocketException ex)
{
}
}
}
private
void
ReadMsg(
object
obj)
{
Socket socket
=
(Socket)obj;
HelpHandler rHandler
=
new
HelpHandler(ReceivedMsg);
byte
[] byteMessage
=
null
; ;
while
(ServiceStartFlag)
{
try
{
if
(socket.Connected)
{
byteMessage
=
new
byte
[
1000
];
int
len
=
socket.Receive(byteMessage);
if
(len
>
0
)
{
string
sTime
=
DateTime.Now.ToShortTimeString();
string
msg
=
sTime
+
"
:
"
+
"
Message from:
"
;
msg
+=
socket.RemoteEndPoint.ToString()
+
Encoding.UTF8.GetString(byteMessage);
BeginInvoke(rHandler,
new
object
[]
{ msg }
);
byteMessage
=
null
;
byte
[] tmpBytes
=
Encoding.UTF8.GetBytes(
"
Sended Sucessed!\0
"
);
socket.Send(tmpBytes);
}
}
}
catch
(SocketException ex)
{
BeginInvoke(rHandler,
new
object
[]
{ ex.ToString() }
);
}
}
}
private
void
ReceivedMsg(
string
str)
{
this
.listBox1.Items.Add(str);
}
private
void
btnStop_Click(
object
sender, EventArgs e)
{
}
private
IPAddress GetIPAddress()
{
IPHostEntry ieh
=
Dns.GetHostByName(Dns.GetHostName());
return
ieh.AddressList[
0
];
}
}
}
查看全文
相关阅读:
hdu 1023 卡特兰数+高精度
hdu 1568 Fibonacci 快速幂
hdu 3054 Fibonacci 找循环节的公式题
hdu 5167 Fibonacci 打表
hdu 4165 Pills dp
HDU 5791 Two DP
BZOJ 2152: 聪聪可可 树分治
HDU 5213 Lucky 莫队+容斥
HDU 5145 NPY and girls 莫队+逆元
BZOJ 3289: Mato的文件管理 莫队+BIT
原文地址:https://www.cnblogs.com/skyblue/p/1523507.html
最新文章
hihoCoder太阁最新面经算法竞赛19
[Python爬虫]cnblogs博客备份工具
[HIHO1052]基因工程(找规律)
[HIHO1107]Shortest Proper Prefix(trie)
[HIHO1062] 最近公共祖先·一(lca, 并查集, 二分, 神trick)
hihoCoder太阁最新面经算法竞赛18
[jetbrains系列] 外链第三方库+代码补全设置
牛客网 牛客小白月赛2 A.数字方阵-反魔方阵,梁邱构造法
HDU 5869.Different GCD Subarray Query-区间gcd+树状数组 (神奇的标记右移操作) (2016年ICPC大连网络赛)
HDU 2767.Proving Equivalences-强连通图(有向图)+缩点
热门文章
HDU 1241.Oil Deposits-求连通块DFS or BFS
强连通分量(Tarjan)模板
洛谷 P2863 [USACO06JAN]牛的舞会The Cow Prom-强连通分量(Tarjan)
Codeforces Gym100812 L. Knights without Fear and Reproach-扩展欧几里得(exgcd)
牛客网 牛客练习赛13 C.幸运数字Ⅲ-思维
Codeforces Round #378 (Div. 2) C. Epidemic in Monstropolis 模拟
hdu 5950 Recursive sequence 矩阵快速幂
hdu 5673 Robot 卡特兰数+逆元
hdu 4828 Grids 卡特兰数+逆元
hdu 5943 Kingdom of Obsession 二分图匹配+素数定理
Copyright © 2011-2022 走看看