我的代码如下:
private Socket m_pSocket = null;
public int Send(byte[] buffer,int offset,int size,SocketFlags socketFlags)
{
try
{
return m_pSocket.Send(buffer,offset,size,socketFlags);
}
catch(Exception E)
{
string s = E.Message;
//这时s的值为:"您的主机中的软件放弃了一个已建立的连接"
}
}
不知道程序提示这个问题是什么原因啊,我没有再什么地方关闭过Socket呀
private Socket m_pSocket = null;
public int Send(byte[] buffer,int offset,int size,SocketFlags socketFlags)
{
try
{
return m_pSocket.Send(buffer,offset,size,socketFlags);
}
catch(Exception E)
{
string s = E.Message;
//这时s的值为:"您的主机中的软件放弃了一个已建立的连接"
}
}
不知道程序提示这个问题是什么原因啊,我没有再什么地方关闭过Socket呀
解决方案 »
- winform Form 无法识别问题....
- 请问如何把本程序暂停几秒钟,而不影响其它程序的运行?
- 想给游戏添加背景音乐
- B/S SOCK 的实现方法
- 高手进来帮帮忙啊!!!SOS C# SQL的问题
- <<c#编程经典>>读书笔记(一).NET Framework 欢迎各位指点
- 怎样在DataGrid中,一行选中两列
- 如何读outlook *.msg文件,最好转化成html,xml
- 求救
- C#添加WEB引用时,引用本地WSDL文件是发生的错误,大侠,帮帮忙!!急!!!
- Winform DataGrid 滚动条显示不出来的问题
- 我想把数据库操作封装成一个类,以这种方式写,那不是很不好设计类库了吗?请教。
//---- Send message --------------------------------------------//
long totalSent = 0;
//msgStrmPeriodOk是内存流
long totalLength = msgStrmPeriodOk.Length;
int unitBytes = 10240;
while(totalSent < totalLength){
byte[] dataBuf = new byte[unitBytes];
int nCount = msgStrmPeriodOk.Read(dataBuf,0,dataBuf.Length);
//下面调用那上面的方法
int countSended = Send(dataBuf,0,nCount,SocketFlags.None);
totalSent += countSended; if(countSended != nCount){
msgStrmPeriodOk.Position = totalSent;
}
}
int iLength = textBox2.Text.Length ;
//获取要发送的数据的长度
Byte [ ] bySend = new byte [ iLength ] ;
//根据获取的长度定义一个Byte类型数组
bySend = System.Text.Encoding.Default.GetBytes
( textBox2.Text ) ;
//按照指定编码类型把字符串指定到指定的Byte数组
int i = stSend.Send ( bySend ) ;
我觉得可能是缓冲不够用,send又不会自动阻塞.
{
int count = 0;
int times = (buffer.Length - 1) / 1024 + 1;
for (int i = 0; i < times; ++ i)
{
int len = buffer.Length - count;
if (len > 1024) len = 1024;
byte[] bf = new byte[len];
for (int j = 0; j < bf.Length; ++ j)
{
bf[j] = buffer[count];
++ count;
}
len = socket.Send(bf);
if (len < bf.Length) break;
}
return count;
}
//
so .Connect(new IPEndPoint(System.Net.Dns.Resolve(mx.Host).AddressList[0],m_Port));
[email protected]
谢谢!
//
so .Connect(new IPEndPoint(System.Net.Dns.Resolve(mx.Host).AddressList[0],m_Port));