惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

GbyAI
GbyAI
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
A
About on SuperTechFans
The Last Watchdog
The Last Watchdog
A
Arctic Wolf
S
Schneier on Security
Cisco Talos Blog
Cisco Talos Blog
K
Kaspersky official blog
Spread Privacy
Spread Privacy
The Hacker News
The Hacker News
P
Proofpoint News Feed
Attack and Defense Labs
Attack and Defense Labs
NISL@THU
NISL@THU
AWS News Blog
AWS News Blog
Schneier on Security
Schneier on Security
TaoSecurity Blog
TaoSecurity Blog
H
Hacker News: Front Page
L
LangChain Blog
Y
Y Combinator Blog
T
Tenable Blog
Microsoft Security Blog
Microsoft Security Blog
L
Lohrmann on Cybersecurity
量子位
N
News and Events Feed by Topic
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
The GitHub Blog
The GitHub Blog
云风的 BLOG
云风的 BLOG
W
WeLiveSecurity
Martin Fowler
Martin Fowler
Cloudbric
Cloudbric
S
SegmentFault 最新的问题
Project Zero
Project Zero
D
Darknet – Hacking Tools, Hacker News & Cyber Security
博客园 - 叶小钗
V
Vulnerabilities – Threatpost
小众软件
小众软件
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
腾讯CDC
博客园 - 聂微东
F
Full Disclosure
WordPress大学
WordPress大学
PCI Perspectives
PCI Perspectives
P
Privacy International News Feed
M
MIT News - Artificial intelligence
Forbes - Security
Forbes - Security
Blog — PlanetScale
Blog — PlanetScale
T
The Blog of Author Tim Ferriss
Webroot Blog
Webroot Blog
S
Security @ Cisco Blogs
Last Week in AI
Last Week in AI

博客园 - 西门潇洒

MSSQL批量写入数据方案 关于SQL连接 加条件查询的LINQ表达式写法 关于LINQ中实现随机查询数据库中记录 .NET新特性--扩展方法 Array中数据强制数据类型转换 the Project type is not supported by installation 项目类型不能正确加载 ASP.NET三层架构中数据绑定的问题 ASP.NET 2.0中XML数据的处理 小牛生产小牛的问题解决集粹 <转>自毁前程的七种行为 <转>在 ASP.NET 中执行 URL 重写 正则式中的实用命名组替换 将一段符合XML格式规范字符串插入已有XML文档当中 <转>如何C#中实现在TreeView查找某一节点 javascript正则表达式中使用变量关键字 <转>JavaScript 参考教程之对象化编程 <转>JavaScript 参考教程之JavaScript 简介 <转>JavaScript 参考教程之事件处理 <转>JavaScript 参考教程资料之文档对象
去除socket编程当中接收到的多余符\0 - 西门潇洒 - 博客园
西门潇洒 · 2007-12-28 · via 博客园 - 西门潇洒

在socket编程当中,由于本人的服务器端采取的为异步接收,所以它可以获取到准确的数据接收长度
而在客户端是采用的同步方式,从而无法获取到(应该可能有方法我没有找到),这样导致了在接收数据时
除到接收到完整的数据以外,还多出了一个无关的数据"\0",还真是苦恼.难怪程序咋测试咋不对.但也不报错.

后来找到一个投机的方式,应该说是治村不治本的方式采用,字符串的

TrimEnd()方法来去除到数据最后无关的多余数据

String.TrimEnd 方法

从当前 String 对象移除数组中指定的一组字符的所有尾部匹配项。 ... 从当前 String 对象移除数组中指定的一组字符的所有尾部匹配项。 命名空间: System 程序集: mscorlib(在 mscorlib.dll 中)

eg:string result=

friendUserID.TrimEnd('\0');
在此里就顺便说下了字符串的一些操作.
(以下引自MSDN)
剪裁和移除字符
如果将一个句子分析成单个的单词,则最后的结果可能是单词的一端或另一端带有空格(也称为空白)。在这种情形下,可以使用 System.String 类中的剪裁方法之一来从字符串中的指定位置移除任何数量的空格或其他字符。下表描述了可用的剪裁方法。

String MyString = " Big   ";
Console.WriteLine("Hello{0}World!", MyString );   
string TrimString = MyString.Trim();
Console.WriteLine("Hello{0}World!", TrimString );
这段代码将以下两行显示到控制台。

Hello Big   World!
HelloBigWorld! 

TrimEnd

String.TrimEnd 方法从字符串的结尾移除字符,同时创建新的字符串对象。通过为此方法传递一个字符数组来指定要移除的字符。字符数组中的元素顺序并不影响剪裁操作。当找到未在数组中指定的字符时,剪裁停止。

下面的示例使用 TrimEnd 方法移除字符串最后面的字母。在此示例中,'r' 字符和 'W' 字符的位置反转,以阐释数组中字符的顺序并不重要。请注意,此代码移除 MyString 的最后一个单词和第一个单词的一部分。

string MyString = "Hello World!";
char[] MyChar = {'r','o','W','l','d','!',' '};
string NewString = MyString.TrimEnd(MyChar);
Console.WriteLine(NewString);

此代码将 He 显示到控制台。

下面的示例使用 TrimEnd 方法移除字符串的最后一个单词。在此代码中,单词 Hello 后尾随一个逗号,而由于在要剪除的字符的数组中没有指定逗号,因此剪裁在逗号处结束。

string MyString = "Hello, World!";
char[] MyChar = {'r','o','W','l','d','!',' '};
string NewString = MyString.TrimEnd(MyChar);
Console.WriteLine(NewString);

此代码将

Hello,

显示到控制台。

TrimStart

String.TrimStart 方法类似于 String.TrimEnd 方法,不同之处在于它通过从现有字符串对象的开头移除字符来创建新的字符串。通过向 TrimStart 方法传递一个字符数组来指定要移除的字符。使用 TrimEnd 方法时,字符数组中元素的顺序并不影响剪裁操作。当找到未在数组中指定的字符时,剪裁停止。

下面的示例移除字符串的第一个单词。在此示例中,'l' 字符和 'H' 字符的位置反转,以阐释数组中字符的顺序并不重要。

string MyString = "Hello World!";
char[] MyChar = {'e', 'H','l','o',' ' };
string NewString = MyString.TrimStart(MyChar);
Console.WriteLine(NewString);

此代码将

World!

显示到控制台。
Remove

String.Remove 方法,从现有字符串的指定位置开始,移除指定数量的字符。此方法采用从零开始的索引。

下面的示例从字符串的从零开始的索引的第五个位置开始,从该字符串中移除十个字符。

string MyString = "Hello Beautiful World!";  
Console.WriteLine(MyString.Remove(5,10));

此代码将

Hello World!

显示到控制台。