综合运用以上阐述的使用visual c#进行socket网络程序开发的知识,下面的程序是一个简单的socket通讯实例,client向server发送一段测试字符串,server接收并显示出来,给予client成功相应。
//client端
using system;
using system.text;
using system.io;
using system.net;
using system.net.sockets;
namespace socketsample
{
class class1
{
static void main()
{
try
{
int port = 2000;
string host = "127.0.0.1";
ipaddress ip = ipaddress.parse(host);
ipendpoint ipe = new ipendpoint(ip, port);
socket c = new socket(addressfamily.inte.network, sockettype.stream, protocoltype.tcp);
c.connect(ipe);
string sendstr = "hello!this is a socket test";
byte[] bs = encoding.ascii.getbytes(sendstr);
c.send(bs, bs.length, 0);
string recvstr = "";
byte[] recvbytes = new byte[1024];
int bytes;
bytes = c.receive(recvbytes, recvbytes.length, 0);
recvstr += encoding.ascii.getstring(recvbytes, 0, bytes);
console.writeline(recvstr);
c.close();
}
catch (argumentnullexception e)
{
console.writeline("argumentnullexception: {0}", e);
}
catch (socketexception e)
{
console.writeline("socketexception: {0}", e);
}
console.readline();
}
}
}
//server端
using system;
using system.text;
using system.io;
using system.net;
using system.net.sockets;
namespace project1
{
class class2
{
static void main()
{
try
{
int port = 2000;
string host = "127.0.0.1";
ipaddress ip = ipaddress.parse(host);
ipendpoint ipe = new ipendpoint(ip, port);
socket s = new socket(addressfamily.inte.network, sockettype.stream, protocoltype.tcp);
s.bind(ipe);
s.listen(0);
socket temp = s.accept();
string recvstr = "";
byte[] recvbytes = new byte[1024];
int bytes;
bytes = temp.receive(recvbytes, recvbytes.length, 0);
recvstr += encoding.ascii.getstring(recvbytes, 0, bytes);
console.writeline(recvstr);
string sendstr = "ok!sucess!";
byte[] bs = encoding.ascii.getbytes(sendstr);
temp.send(bs, bs.length, 0);
temp.shutdown(socketshutdown.both);
temp.close();
s.shutdown(socketshutdown.both);
s.close();
}
catch (argumentnullexception e)
{
console.writeline("argumentnullexception: {0}", e);
}
catch (socketexception e)
{
console.writeline("socketexception: {0}", e);
}
console.readline();
}
}
}
以上程序在vs express 2005 .net2.0环境下测试通过。
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器