.Net和Java的Socket机制比较

开发 后端
Java的TCP服务中使用的Socket是一种流机制,而.Net的Socket则提供了一种统一的收发机制:NetworkStream。本文主要对.Net和Java中的Socket机制进行了比较。

Socket是基于TCP和UDP协议的高层接口,定义了收发数据的格式。Java的TCP服务中使用的Socket是一种流机制,即对于编程人员来说,处理socket只需要从Socket中获取流,然后可以像处理本地流一样来进行数据的收发。

例如:

DataOutputStream outToClient =new DataOutputStream(socket.getOutputStream());
  BufferedReader inFromClient =new BufferedReader
(new InputStreamReader(socket.getInputStream()));   String requestMessageLine = inFromClient.readLine();   outToClient.writeBytes(requestMessageLine);

.Net的Socket机制提供了两种实现:一种是直接用Socket类,一种是使用对Socket再次封装的TcpClient,UdpClient类来实现。.Net提供了一种统一的收发机制:NetworkStream。

TcpClient和Socket的底层都是通过NetworkStream来传送数据的。它们都可以产生一个NetworkStream。例如:

TcpClient client = server.AcceptTcpClient();
  NetworkStream stream = client.GetStream();

.Net的socket和Java的socket在收发数据上的***不同是:Java的socket可以像普通的流一样操作。.Net的socket有多种实现方法,可以直接用Socket.send()来发,也可以用NetwordStream来发送,也可以用TcpClient来发送。但是每种实现在收发数据的时候都是通过显示的对缓冲区进行操作。例如:

byte[] datasize = new byte[4]; networkStream.Write(datasize,0,4);
  socket.Send(datasize, 0,datasize.Length, 0);

【编辑推荐】

  1. 三步学会Java Socket编程
  2. 新一代Java Web开发框架JSF访谈实录
  3. Java 7新特性展望 语言本身的改变会很少
  4. 针对 Java 开发人员的 Dojo 概念
责任编辑:杨鹏飞 来源: CSDN
相关推荐

2010-03-19 16:38:29

Java Socket

2009-02-13 09:45:27

程序员JavaPHP

2009-10-29 14:02:24

VB和VB.NET比较

2010-09-07 09:44:44

Lucene.NETHubbleDotNe

2009-09-07 15:04:07

2012-03-19 10:41:15

JavaSocket

2009-07-30 12:42:19

html控件和web控

2020-08-19 10:29:08

RubyJava语法

2014-03-10 10:06:40

WebSocket.Net

2011-07-21 13:21:32

PHP

2009-08-11 13:13:09

C#和Java比较

2009-08-11 14:57:11

比较C#和Java

2009-08-28 10:18:48

Java序列化

2009-07-28 14:10:14

2010-01-06 16:25:58

.Net Framew

2009-01-13 10:13:05

Ja.NETJava整合.NET整合

2012-02-29 09:32:01

Java

2020-07-27 08:24:42

编程语言C语言Java

2012-03-19 11:41:30

JavaSocket

2020-02-20 16:45:39

RabbitMQKafka架构
点赞
收藏

51CTO技术栈公众号