一、服务端
tcplistener server = new tcplistener(ipaddress.parse("127.0.0.1"), 13000);//定义监听器 server.start();//启动监听器 byte[] buffer = new byte[1024]; //创建一个容器用于接受数据 string data = null; while (true) { //等待客户端连接过来 tcpclient client = server.accepttcpclient(); //task<tcpclient> task1 = server.accepttcpclientasync(); //socket socket = server.acceptsocket(); //task<socket> task2 = server.acceptsocketasync(); //server.pending(); //取得客户端发送过来的数据 int len = client.available;//获取已经从网络流接收且可供读取的数据量 networkstream nstream = client.getstream(); //返回一个可供读写的网络流 int bytesread; do { bytesread = nstream.read(buffer, 0, buffer.length); //接收消息 data = encoding.utf8.getstring(buffer, 0, bytesread); //先将接收到的数据转化可输出的字符串类型 console.writeline("收到消息:" + data); 输出收到的信息 byte[] msg = encoding.utf8.getbytes(data.toupper()); nstream.write(buffer, 0, buffer.length);//发送消息 } while (bytesread > 0); nstream.close(); //1.先释放流的数据 client.close(); //2.再释放客户端的连接数据 } server.stop(); //3.关闭监听
二、客户端
tcpclient client = new tcpclient("127.0.0.1", 13000);//连接服务器 //或者 // tcpclient client=new tcpclient(); // client.connect("127.0.0.1", 13000); networkstream nstream = client.getstream(); //---其他同服务端 nstream.close(); //1.先释放流的数据 client.close(); //2.再释放客户端的连接数据
三、发送邮件
1、使用mailmessage和smtpclient发送邮件。
在wince中,可以使用opennetcf.net.mail类发送邮件。
mailmessage mailmessage = new mailmessage { //发件人 from = new mailaddress("***@163.com", "您的朋友", encoding.utf8), priority = mailpriority.high, //邮件主题 subjectencoding = encoding.utf8, subject = "hello", }; //收件人 可以添加多个收件人 mailmessage.to.add(new mailaddress("137***126@qq.com")); //mailmessage.cc 获取包含此电子邮件的抄送(cc)收件人的地址集合 //邮件正文 mailmessage.isbodyhtml = true;//如果要发送html格式的消息,需要设置这个属性 mailmessage.bodyencoding = encoding.utf8; mailmessage.body = "<p style='color:red;font-size:14px;'>邮件测试</p>"; //邮件内容即消息正文中中显示图片 ,需要为图片指明src='cid:idname(资源id)' alternateview htmlbody = alternateview.createalternateviewfromstring("<img src='cid:zfp'/>", null, "text/html"); //然后在linkedresource加入文件的绝对地址,和contenttype 例如image/gif,text/html...与http请求的响应报文中的contenttype一致 linkedresource lr = new linkedresource("1.gif", "image/gif"); //绑定上文中指定的idname lr.contentid = "zfp"; //添加链接资源 htmlbody.linkedresources.add(lr); mailmessage.alternateviews.add(htmlbody); //发送附件 指明附件的绝对地址 attachment attachment = new attachment("1.txt"); mailmessage.attachments.add(attachment); //创建邮件发送客户端 smtpclient sendclient = new smtpclient("smtp.qq.com", 25) { //指定邮箱账号和密码 credentials = new networkcredential(frommail, "xmxyldrmtvnrddfe") }; //指定如何发送电子邮件 sendclient.deliverymethod = smtpdeliverymethod.network; //指定使用使用安全套接字ssl加密的链接 sendclient.enablessl = true; sendclient.send(mailmessage); //或者可以一步发送 sendclient.sendasync(mailmessage, null);
2、利用tcpclient类收取pop3邮件
tcpclient client = new tcpclient("mail.**.com", 443); //连接 networkstream ns = client.getstream(); streamreader sr = new streamreader(ns, encoding.default); string result = sr.readline(); //返回ok或er //登陆 streamwriter sw = new streamwriter(ns); sw.writeline("user b**"); sw.flush(); result = sr.readline(); sw.writeline("pass **"); sw.flush(); result = sr.readline(); //获取邮件数量 sw.writeline("stat"); sw.flush(); result = sr.readline();//result.split(' ')[1]表示邮件数量 //获取邮件信息 sw.writeline("top 1 0 "); sw.flush(); result = sr.readline(); while (true) { result = sr.readline(); if (result == ".") break; if (result.length > 4 && result.substring(0, 8) == "subject:") { //result为标题,乱码用base64解码 encoding.getencoding("gb2312").getstring(convert.frombase64string(result)); } }