C#的TCP通信
TCP是连接模型,如下:
服务器连接 服务器断开
↓ ↑
服务器接收→服务器处理→服务器发送
↑ ↓
客户端发送←客户端处理←客户端接收
↑ ↓
客户端连接 客户端断开
服务器代码如下:
//
ServerListen
TcpListener tcplistener
=
new
TcpListener(
int
.Parse(txtPort.Text));
tcplistener.Start();
byte
[] btServerReceive
=
new
byte
[
256
];
string
strServerReceive
=
string
.Empty;
//
Loop for Listen
while
(
true
)
{
TcpClient tcp
=
tcplistener.AcceptTcpClient();
NetworkStream ns
=
tcp.GetStream();
int
intReceiveLength
=
ns.Read(btServerReceive,
0
,btServerReceive.Length);
strServerReceive
=
UnicodeEncoding.Unicode.GetString(btServerReceive,
0
,intReceiveLength);
txtServerResult.AppendText(
"
ServerReceive:
"
+
strServerReceive
+
"
"
);
ns.Write(btServerReceive,
0
,btServerReceive.Length);
txtServerResult.AppendText(
"
ServerSend:
"
&
相关文档:
大家在实际工作学习C#的时候,可能会问:为什么我们要为一些已经存在的功能(比如Windows中的一些功能,C++中已经编写好的一些方法)要重新编写代码,C#有没有方法可以直接都用这些原本已经存在的功能呢?答案是肯定的,大家可以通过C#中的DllImport直接调用这些功能。
DllImport所在的名字空间 using System.Runt ......
今天用到这个,网上找个不错的,保存下来。
注意:这个方法是快速关机,不会保存你的任何未保存信息。
// 这个结构体将会传递给API。使用StructLayout
[StructLayout(LayoutKind.Sequential, Pack = 1)]
internal struct TokPriv1Luid
{
public int Count;
public ......
private void MakeLegend(IActiveView activeView,IPageLayout pageLayout)
{
//定义图例UID对象
UID uid = new UIDClass();
&n ......
private void save_db(){
SqlConnection conn = new SqlConnection(ConfigurationSettings.AppSettings[""].ToString());
SqlCommand comm = new SqlCommand();
conn.Open();
SqlTransaction rollbk2= conn.BeginTransaction();
& ......