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

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

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

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

Socket类简要介绍

socket下提供的主要类有四个,分别是socket,tcpclIEnt,tcpListener,udpclIEnt,他们的作用如下:

Socket 含有大量方法用于网络连接,.net中的一些高级类如webrequest,tcpclIEnt等均调用此类来进行 *** 作 TcpClIEnt  提供客户端连接,用于创建和使用tcp网络服务 TcpListener  用于从tcp网络客户端侦听连接 UdpClIEnt  为udp客户端创建连接,是tcp的备用协议,在本地网络使用  Demo测试

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

 

  

服务端:

 

代码 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(); 
            } 
        } 
    } 
}

 

客户端:

 

代码 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(); 
            } 
        } 
    } 
}

 

 

 

 

 

 

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

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

总结

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

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

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1029192.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-23
下一篇2022-05-23

发表评论

登录后才能评论

评论列表(0条)

    保存