socket解决办法
发布时间:2011-06-21 11:33:39 文章来源:www.iduyao.cn 采编人员:星星草
socket
int port = 8007;
string host = "192.168.9.63";
IPAddress ip = IPAddress.Parse(host);
IPEndPoint ipe = new IPEndPoint(ip, port);//把ip和端口转化为IPEndPoint实例
Socket c = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);//创建一个Socket
Console.WriteLine("Conneting...");
c.Connect(ipe);//连接到服务器
string sendStr = "1111111111111111111111111111111111111111111111111111";
Encoding gb2312 = Encoding.GetEncoding("gb2312");
byte[] sendStrbytes = gb2312.GetBytes(sendStr);
string StrLen = sendStrbytes.Length.ToString();
byte[] sendStrlen = gb2312.GetBytes(StrLen);
c.Send(sendStrlen, sendStrlen.Length, 0);//发送测试信息
Console.WriteLine("SendMessage");
c.Send(sendStrbytes, sendStrbytes.Length, 0);//发送测试信息
byte [] recievelen=new byte [32];
c.Receive(recievelen);
//
string lenth = System.Text.Encoding.Default.GetString(recievelen);
MessageBox.Show(lenth);
//byte[] recievedata = new byte[Convert.ToInt32(lenth)];
byte[] recievedata = new byte[87];
c.Receive(recievedata);
string rec = gb2312.GetString(recievedata);
MessageBox.Show(rec);
服务器只将接受到的数据转出给PC机,但PC接收数据时总是多一点多了一堆乱码:如前台发送
中TRCD1111112中2中2中2中2中国11dddd1111111111111111111111111111111111111111111111111111
则返回的数据为:
◥<t镴 谼=t87 纔<t8篚穃瀀 (y<t镴
中TRCD1111112中2中2中2中2中国11dddd1111111111111111111111111111111111111111111111111111
搞不清
------解决方案--------------------
通讯没问题 字符集的问题
------解决方案--------------------
string lenth = System.Text.Encoding.Default.GetString(recievelen);
这个问题..
你发送的时候用了gb2312 接收的时候使用了ANSI自然出乱码
------解决方案--------------------
那就可能是接收时溢出了
你可以接收是限定下长度 或者通过循环来分段接受
------解决方案--------------------
用utf8或者default试一下
------解决方案--------------------
arrau.clear(buffer);
------解决方案--------------------
------解决方案--------------------
内存变量没有清零,或者内存指针位置不正确。
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。
其他相似内容:
-
C#读取文本并入库
文本格式固定如下:
**********************:
<中文作者一>=赵逢玲
<中文作者二>=杜秀华
<中文作者三>=王翠东
<中...
-
C#操作Word文档(Office 2007)
首先引入类库,Microsoft.Office.Interop.Word,然后进行编程。代码如下:
using ...
-
请问,ReadLine方法读取文件
一个txt文件,有两行
aaaa
bbbb
代码:
string s1 = @"D:iosamplepp.txt";
using (StreamReader sr = new...
-
验证控件
在gridview页脚行添加了验证控件,可是点击编辑更新时触发了验证事件,无法更新,怎么办?
------解决方案-------------------...
-
在BITMAP上用GDI+画图,如何使画出的图像尽可能清晰?
我在一张bitmap上用GDI+绘制了简单的多边形,并用PictureBox显示。
我发现,如果我...
-
???如何利用webbrower获取ifream元素????
如何利用webbrower获取ifream元素.我在GOOGLE,BAIDU一整天依然无法找到解决方法!!希望各...
-
如何解决“已有打开的与此命令相关联的DataReader,必须首先将它关闭。”错误?
小弟写了一个DBHelper类来控制数据库访问,但是在实际...
-
在做asp.net项目时,在做数据库更新时出现',' 附近有语法错误。(数据库是用sql2000的)
数据库更新语句:
public void Update()
...
-
为什么我这段代码不会发出声音呢?
C# code
using System;
using System.Collections.Generic;
using System.ComponentModel;
usi...
-
ClickOnce 不支持请求执行级别requireAdministrator
写了一个应用程序,使用ServiceController控制 windows服务的的启动和停止。
...