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
];
}
}
}
查看全文
相关阅读:
关于'selffilter' is not a registered tag library. Must be one of:
关于Django报错django.core.exceptions.ImproperlyConfigured: Requested setting DEBUG, but settings are not configure
大杂烩
PyQt5多个GUI界面设计
OpenCV读取图像问题:OpenCV(3.4.3) D:BuildOpenCVopencv-size.width0 && size.height0 in function 'cvimshow'
MOOC课程信息D3.js动态可视化
详解教务系统模拟登录与爬取二
教务系统模拟登录与成绩爬取一
pyecharts各省人口GDP可视化分析
python爬虫伪装技术应用
原文地址:https://www.cnblogs.com/skyblue/p/1523507.html
最新文章
生物信息gtf文件下载
基因组组装软件SOAPdenovo的使用方法
python中的迭代器和生成器
git &github 快速入门
centos下安装并使用PureFtpd
进制转换(各进制的原理)
python面向对象中的__init__方法怎么理解?
R语言基础绘图
top:查看CPU利用率及多核CPU每个核心的使用率
如何查询linux下BIOS信息
热门文章
linux命令brctl命令
常用的virsh管理命令
更改printk打印级别
更新2020 pycharm证书到期your license has expired
Django之ORM进阶
Django之ORM初识
关于No migrations to apply.
Django的路由系统
Django的views视图系统
djiango的模板语言(template)
Copyright © 2011-2022 走看看