国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > .NET > 正文

C#學(xué)習(xí)筆記之七(network I/O, Asynchonouse network I/O)

2024-07-21 02:19:43
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
network io;
//server1 programm
using system.net.sockets;
tcplistener tcplistener = new tcplistener(65000);
tcplistener.start();
for(;;)
{
socket clientsocket = tcplistener.acceptsocket()
if (clientsocket.connected)
{
streamfile(clientsocket);
clientsocket.close();
break;
}
}
void streamfile(socket clientsocket)
{
networkstream networkstream =
new networkstream(clientsocket);
system.io.streamwriter streamwriter =
new system.io.streamwriter(networkstream);
system.io.streamreader streamreader =
new system.io.streamreader(@"c:/a.txt");
string strstream;
do {
strstream = streamreader.readline();
if(strstream != null )
{
streamwriter.writeline(strstream);
streamwriter.flush();
}
} while (strstream != null);
streamreader.close();
networkstream.close();
streamwriter.close();
}

//client1 code
using system.net.sockets;
tcpclient serversocket;
try {
serversocket = new tcpclient("localhost", 65000);
} catch() {}
networkstream networkstream =
seversocket.getstream();
system.io.streamreader streamreader =
new system.io.streamreader(networkstream);
try {
string strout;
do {
if (strout != null)
{
streamreader.readline(strout);
if (strout != null )
{
console.writeline(strout);
}
}
} while (strout != null );
} catch() {}

aysnch network io:
//server2
...
tcplistener = tcplistener = new tcplistener(65000);
tcplistener.start();
for(;;)
{
socket socketforclient = tcplistener.acceptsock();
if (socketforclient.connected)
{
clienthandler handler =
new clienthandler(socketforclient);
handler.startread();
}
}

class clienthandler
{
private byte[] buff;
private socket socket;
private networkstream networksteam;
private asynccallback cbread;
private asynccallback cbwrite;

public clienthandler(socket socketforclient)
{
socket = socketforclient;
buff = new byte[256];
networkstream =
new networkstream(socketforclient);
cbread = new asynccallback(this.onreadcomplete);
cbwrite = new asynccallback(this.onwritecomplete);
}

public void startread()
{
networkstream.beginread(
buff,
0,
buff.length,
cbread,
null );
}
private void onreadcomplete( iasyncresult ar)
{
int bytesread = networkstream.endread(ar);
if ( butesread > 0)
{
string s = system.text.encoding.ascii.getstring(
buff, 0 buytesread);
console.write("received {0} bytes from client: {1},
bytesread, s);
networkstream.beginwrite(
buff, 0, bytesread, cbwrite, null);
}
else
{
console.writeline("read connection dropped");
networkstream.close();
socket.close();
networkstream = null;
socket = null;
}
} //onreadcomplete
private void onwritecomplete(iasyncresult ar)
{
networkstream.endwrite(ar)
console.writeline("write complete");
networkstream.beginread(
buff, 0, buff.length,
cbread, null );

} // onwritecomplete
}


// client2 code
network networkstream streamtoserver;
tcpclient tcpsocket =
new tcpclient("localhost", 65000);
streamtoserver = tcpsocket.getstream();
string message = "this is a string sent from the client!";
streamwriter writer =
new streamwriter(streamtoserver);
writer.writeline(message)
writer.flush();
streamreader reader =
new streamreader(streamtoserver);
string strresponse = reader.readline();
console.writeline("received: {0}", strresonse);
streamtoserver.close();
return 0;

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 永济市| 定兴县| 海原县| 彰化县| 米易县| 南城县| 农安县| 乌兰察布市| 鄱阳县| 丰台区| 花垣县| 宁都县| 怀化市| 翁牛特旗| 南充市| 开平市| 玉龙| 柘城县| 博爱县| 栾城县| 即墨市| 萨嘎县| 同江市| 紫金县| 镇原县| 合阳县| 大宁县| 深州市| 磐石市| 鄂温| 潼关县| 晋江市| 霍州市| 平利县| 湖口县| 罗江县| 马关县| 聊城市| 巴林左旗| 大庆市| 文水县|