silverlight   发布时间:2022-05-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了在Silverlight中使用Socket进行通信(1)Socket"请求-回复"方式的简易数据交换大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

很久之前用过Socket,由于近期项目需要用socket传输视频流,早上花了半小时回顾了一下。 Socket类简要介绍 socket下提供的主要类有四个,分别是socket,tcpclient,tcplistener,udpclient,他们的作用如下: Socket 含有大量方法用于网络连接,.net中的一些高级类如webrequest,tcpclient等均调用此类来进行操作 TcpClien

很久之前用过Socket,由于近期项目需要用socket传输视频流,早上花了半小时回顾了一下。

Socket类简要介绍

socket下提供的主要类有四个,分别是socket,tcpclient,tcplistener,udpclient,他们的作用如下:

  1. Socket 含有大量方法用于网络连接,.net中的一些高级类如webrequest,tcpclient等均调用此类来进行操作
  2. TcpClient  提供客户端连接,用于创建和使用tcp网络服务
  3. TcpListener  用于从tcp网络客户端侦听连接
  4. UdpClient  为udp客户端创建连接,是tcp的备用协议,在本地网络使用

 Demo测试

这个Demo含有两个project,一个是server,一个是client,为了简洁,均采用控制台程序

 

在Silverlight中使用Socket进行通信(1)Socket"请求-回复"方式的简易数据交换

  

服务端:

 

在Silverlight中使用Socket进行通信(1)Socket"请求-回复"方式的简易数据交换

代码
using  System
using  System.Collections.Generic; 
using  System.Linq; 
using  System.Text; 
using  System.IO; 
using  System.Net.sockets; 

namespace  SocketServer 
{ 
    
class  Program 
    { 
        
public   static  TcpListener tcpListener; 
        
private   static  NetworkStream networkStream; 
        
private   static  StreamReader streamReader; 
        
private   static  StreamWriter streamWriter; 
        
public   static  Socket socketForClient; 

        
static   void  Main( String [] args) 
        { 
            
try  
            { 
                tcpListener 
=   new  TcpListener( 1234 ); 
                tcpListener.Start(); 
                console.WriteLine(
" 服务启动,开始监控1234端口 " ); 

                socketForClient 
=  tcpListener.AcceptSocket(); 
                networkStream 
=   new  NetworkStream(socketForClient); 
                streamWriter 
=   new  StreamWriter(networkStream); 
                streamReader 
=   new  StreamReader(networkStream); 
                
try  
                { 
                    
if  (socketForClient.Connected) 
                    { 
                        console.WriteLine(
" 客户端已连接 " ); 
                        
String  Strinput  =  streamReader.ReadLine(); 
                        console.WriteLine(
" 从客户端传入的字符串是: "   +  Strinput); 
                        
String  strOutput  =  Strinput.ToUpper(); 
                        streamWriter.Write(strOutput); 
                        console.WriteLine(
" 转换后字符串是 "   +  strOutput); 
                        streamWriter.Flush(); 
                    } 
                } 
                
catch  (Exception eX) 
                { 
                    console.WriteLine(
" 出现异常: "   +  ex.messagE)
                } 
            } 
            
catch (Exception eX) 
            { 
                console.WriteLine(
" 发生异常,关闭连接 " ); 
                tcpListener.Stop(); 
                streamWriter.Close(); 
                streamReader.Close(); 
                networkStream.Close(); 
            } 
        } 
    } 
}

 

客户端:

 

在Silverlight中使用Socket进行通信(1)Socket"请求-回复"方式的简易数据交换

代码
using  System
using  System.Collections.Generic; 
using  System.Linq; 
using  System.Text; 
using  System.IO; 
using  System.Net.sockets; 

namespace  SocketClient 
{ 
    
class  Program 
    { 
        
public   static  TcpClient myclient; 
        
private   static  NetworkStream networkStream; 
        
private   static  StreamReader streamReader; 
        
private   static  StreamWriter streamWriter; 

        
static   void  Main( String [] args) 
        { 
            
try  
            { 
                
try  
                { 
                    myclient 
=   new  TcpClient( " localhost " 1234 ); 
                    console.WriteLine(
" 已经连接到localhost的1234端口 " ); 
                } 
                
catch  (Exception eX) 
                { 
                    console.WriteLine(
" 未能在1234端口连接上服务器 " ); 
                } 
                networkStream 
=  myclient.GetStream(); 
                streamReader 
=   new  StreamReader(networkStream); 
                streamWriter 
=   new  StreamWriter(networkStream); 
                console.WriteLine(
" 请输入一串小写字母: " ); 
                
String  Strinput  =  console.ReadLine(); 
                streamWriter.Write(Strinput); 
                console.WriteLine(
" 正在发送消息 " ); 
                streamWriter.Flush(); 
                
String  strServerComes  =  streamReader.ReadLine(); 
                console.WriteLine(
" 正在从服务端收取消息 " ); 
                console.WriteLine(
" 从服务端收到的消息是: "   +  strServerComes); 
            } 
            
catch (Exception eX) 
            { 
                console.WriteLine(
" 发生异常,关闭连接 " ); 
                streamReader.Close(); 
                streamWriter.Close(); 
                networkStream.Close(); 
            } 
        } 
    } 
}

 

 

 

在Silverlight中使用Socket进行通信(1)Socket"请求-回复"方式的简易数据交换

 

 

在Silverlight中使用Socket进行通信(1)Socket"请求-回复"方式的简易数据交换

 

在windows 7 中需要安全设置,否则socket将无法正常访问端口。

接下来将会做socket与silverlight传输文本及视频流的尝试。

大佬总结

以上是大佬教程为你收集整理的在Silverlight中使用Socket进行通信(1)Socket"请求-回复"方式的简易数据交换全部内容,希望文章能够帮你解决在Silverlight中使用Socket进行通信(1)Socket"请求-回复"方式的简易数据交换所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。