社区
C#
帖子详情
网络编程中,使用Socket和TcpClient有什么区别?
godblessyU
2006-08-24 10:26:01
我看网络编程方面的例子,一般都是在服务器端用Socket,客户端用TcpClient,所以有两个问题:
1.能不能在服务器端和客户端只使用Socket来接收和发送信息。
2.在服务器端和客户端只使用TcpClient来接收和发送信息。
还有就是使用Socket和TcpClient有什么区别?
...全文
3836
17
打赏
收藏
网络编程中,使用Socket和TcpClient有什么区别?
我看网络编程方面的例子,一般都是在服务器端用Socket,客户端用TcpClient,所以有两个问题: 1.能不能在服务器端和客户端只使用Socket来接收和发送信息。 2.在服务器端和客户端只使用TcpClient来接收和发送信息。 还有就是使用Socket和TcpClient有什么区别?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
「已注销」
2006-12-07
打赏
举报
回复
我觉得是一样的吧,都可以互相转换的。比如用Socket的Receive()方法接收数据,而用TcpClient就用它的NetworkStream的Read()方法来读。
BlueGhost1999
2006-12-07
打赏
举报
回复
up一下
sswwee
2006-08-28
打赏
举报
回复
你可以用Socket访问IIS中的ASP.NET的页面,不过传输层,会话层的转换就要你自已用代码实现了
=================================
上面的话是什么意思?
==================================================================
意思就是http协议头作为socket中普通的数据传出去了,接受的包里,http协议头也作为普通的数据接受过来,你得手动判断那些玩意,socket是网络中最基础的,不光http,甚至udp tcp的头都可以伪造。
kingtoo010
2006-08-27
打赏
举报
回复
帮顶..接分...
------------------------------------------------------------------------------------
100M.Net空间+50M企业邮局=60元/年
100M.Net空间+国际顶级域名=100元/年
国际顶级域名.com.net.cn=50元/年
本站申请域名可绑定免费10M Asp.Net空间
1000M.Net空间 + 100M MsSql数据库 + 1000M企业邮局 + 顶级域名=600元/年
数据库 企业邮局 网站推广 整机租用 美国空间 网站建设 均有售
还有很多优惠套餐提供给各个用户层.
有意者可联系电话:021-64802212 传真:021-64802212
咨询信箱:info@kingtoo.com 咨询OICQ:68311305,379620139 81778640
godblessyU
2006-08-27
打赏
举报
回复
你可以用Socket访问IIS中的ASP.NET的页面,不过传输层,会话层的转换就要你自已用代码实现了
=================================
上面的话是什么意思?
yespie
2006-08-27
打赏
举报
回复
up,正准备开发pos系统的传输,可参考一下。
wxwinter
2006-08-27
打赏
举报
回复
如果你用Socket访问IIS,要做如下考虑:
网络层:
使用什么网络层协议,如IPV4还是IPV6;如果开发路由器也要考虑这个问题
传输层:
你要使用那种传输层协议,比如是TCP.
会话层:
你要使用那种会话层协议,如HTTP.
=====================================================
也就是说你可以用
Socket类.Send方法 发送如下字串的二进制到IIS
//
GET /?T1=234&T2=789&B1=%CC%E1%BD%BB HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.0.3705)
Host: 192.168.0.2:81
Connection: Keep-Alive
//
你会收用Receive到如下数据:
//
HTTP/1.0 200 OK
MIME_version:1.0
Content_Type:text/html
Content_Length:N
[input type=button]
//
然后你可以将此数据解析成一个HTML页的按钮
///////////////////////////////////////////////////////////
上面的操作就是:
网络层-----会话层,用Socket访问IIS中的ASP.NET的页面
传输层,会话层的转换自已用代码实现了
但是要这样做,WEB开发人员会死的很惨,所以WEB开发只要实现[会话层-----会话层]就可以了
他要要做的只是[form] 到IIS,Response到客户端。
而到了WebService的Method开发时,Response都不用考虑了
-------------------------------------
现在再说[Socket和TcpClient有什么区别]
Socket:网络层
TcpClient:传输层
当你只考虑:主机,端口,数据传输时,用TcpClient,或UdpClient
当你要考虑:IP封包,路由,IP数据包时,用Socket
还有NET中的Socket类提供了一些对Socket操作的高级封装,但同时无法实现一些Socket底部操作。
目前在NET中不建议使用Socket,就如现在不建议使用NET开发DirectX一样,虽然可以做到
等路由器,交换机都使用Win CE,集成Net类时,也许我上面的话会过时
diandian82
2006-08-24
打赏
举报
回复
其实就是封装
godblessyU
2006-08-24
打赏
举报
回复
UP
godblessyU
2006-08-24
打赏
举报
回复
还有就是,在什么情况下使用Socket的AcceptSocket()方法,什么时候使用AcceptTcpClient
()方法?谢谢
cctaiyang
2006-08-24
打赏
举报
回复
也就是说TcpClient已经封装了TCP套接字的创建
cctaiyang
2006-08-24
打赏
举报
回复
TcpClient类专为客户端设计,它为 TCP 网络服务提供客户端连接。TcpClient类是创建在Socket之上的
cenchure
2006-08-24
打赏
举报
回复
没区别
cctaiyang
2006-08-24
打赏
举报
回复
你查一下msdn吧
wxwinter
2006-08-24
打赏
举报
回复
------------------------------
物理层:HUB,网线
链路层:MAC,ARP,交换机
网络层:IP,ICMP,IGMP,路由器
传输层:TCP,UDP
会话层:HTTP,SMTP,FTP,POP3
表示层:SOAP,SSL
应用层:WebService的Method
-------------------------------
Socket是对网络层操作
TcpClient是对传输层操作
ASP.NET是对会话层操作
你可以用Socket访问IIS中的ASP.NET的页面,不过传输层,会话层的转换就要你自已用代码实现了
wuluwulu
2006-08-24
打赏
举报
回复
TcpClient是Socket的基础上的封装,一般的应用,其实用TcpClient可以了,或者使用NetStream也不错,如果要作点高级的事情,用Socket作吧,不过用下来其实也差不多,习惯而已
zxcayumi
2006-08-24
打赏
举报
回复
TCPClient是以Socket为基础封装而来的
Linux 下
使用
C++进行
Socket
编程
(源码)
Linux 下
使用
C++进行
Socket
编程
(源码):c和c++源码
c_
socket
编程
入门
非常不错,c#入门经典哦! 关于
socket
的,适合初学者。 #
socket
编程
基础 Microsoft.Net Framework为应用程序访问Internet提供了分层的、可扩展的以及受管辖的
网络
服务,其名字空间System.Net和System.Net.
Socket
s包含丰富的类可以开发多种
网络
应用程序。.Net类采用的分层结构允许应用程序在不同的控制级别上访问
网络
,开发人员可以根据需要选择针对不同的级别编制程序,这些级别几乎囊括了Internet的所有需要 --从
socket
套接字到普通的请求/响应,更重要的是,这种分层是可以扩展的,能够适应Internet不断扩展的需要。 抛开ISO/OSI模型的7层构架,单从TCP/IP模型上的逻辑层面上看,.Net类可以视为包含3个层次:请求/响应层、应用协议层、传输层。 WebReqeust和WebResponse 代表了请求/响应层,支持Http、Tcp和Udp的类组成了应用协议层,而
Socket
类处于传输层。 传输层位于这个结构的最底层,当其上面的应用协议层和请求/响应层不能满足应用程序的特殊需要时,就需要
使用
这一层进行
Socket
套接字
编程
。 而在.Net
中
,System.Net.
Socket
s 命名空间为需要严密控制
网络
访问的开发人员提供了 Windows
Socket
s (Winsock) 接口的托管实现。System.Net 命名空间
中
的所有其他
网络
访问类都建立在该套接字
Socket
实现之上,如
TCPClient
、TCPListener 和 UDPClient 类封装有关创建到 Internet 的 TCP 和 UDP 连接的详细信息;NetworkStream类则提供用于
网络
访问的基础数据流等,常见的许多 Internet服务都可以见到
Socket
的踪影,如Telnet、Http、Email、Echo等,这些服务尽管通讯协议Protocol的定义不同,但是其基础的传输都是采用的
Socket
。 其实,
Socket
可以象流Stream一样被视为一个数据通道,这个通道架设在应用程序端(客户端)和远程服务器端之间,而后,数据的读取(接收)和写入(发送)均针对这个通道来进行。 可见,在应用程序端或者服务器端创建了
Socket
对象之后,就可以
使用
Send/SentTo方法将数据发送到连接的
Socket
,或者
使用
Receive/ReceiveFrom方法接收来自连接
Socket
的数据; 针对
Socket
编程
,.NET 框架的
Socket
类是 Winsock32 API 提供的套接字服务的托管代码版本。其
中
为实现
网络
编程
提供了大量的方法,大多数情况下,
Socket
类方法只是将数据封送到它们的本机 Win32 副本
中
并处理任何必要的安全检查。如果你熟悉 Winsock API函数,那么用
Socket
类编写
网络
程序会非常容易,当然,如果你不曾接触过,也不会太困难,跟随下面的解说,你会发觉
使用
Socket
类开发windows
网络
应用程序原来有规可寻,它们在大多数情况下遵循大致相同的步骤。
C#
网络
编程
(完整版)
C#
网络
编程
Socket
tcpclient
学习资料完整版
TcpClient
和Tcp
Socket
写的聊天软件
TcpClient
和Tcp
Socket
写的聊天软件(带一个简单的登录界面) 注意:只适合刚接触
网络
编程
的人员参考 运行环境:VS2010(如果你的电脑用的是VS2008可以用记事本打开看源代码)
计算机
网络
原理-TCP协议和UDP协议的的
Socket
编程
实现(内含C,Java,python三种实现源码+实验报告书).zip
计算机
网络
原理-TCP协议和UDP协议的的
Socket
编程
实现(内含C语言,Java,python三种语言实现源码+实验报告书
C#
110,571
社区成员
642,565
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章