求助:socket使用connect连接80端口,任意ip都正常

疯魔症 2010-01-08 02:32:15
使用socket连接80时,没有任何异常,MSDN说connect会一直连接到成功或失败,网线断掉也不出异常。
换成其他端口,connect时直接抛异常,说连接不成功。不知道那里出问题了,是机器的问题还是什么。
我这里根据出没出异常来判断,是否连接成功。
环境是.net C#语言。
代码


/// <summary>
/// 使用Socket的tcp通讯
/// </summary>
/// <param name="SendText">要发送的字符串</param>
/// <returns></returns>
public string CommunicteSocketTcp(string SendText)
{
Byte[] ByteGet = ASCIIEncoding.ASCII.GetBytes(SendText);

Socket s = null;

try
{
IPAddress hostAddress = IPAddress.Parse("192.168.1.50");
int conPort = 80;

IPEndPoint hostEndPoint = new IPEndPoint(hostAddress, conPort);

//Create The Socket to send data over a tcp connection
s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

//Connect to the host using its IPEndPoint.
s.Connect(hostEndPoint);

if (!s.Connected)
{
s.Close();
s = null;
throw new Exception("连接不成功");
}

//Sent the GET request to the host.
s.Send(ByteGet, ByteGet.Length, 0);

byte[] recvBytes = new byte[1024];
int bytes = s.Receive(recvBytes, recvBytes.Length, 0);//从

s.Close();
}
catch (Exception eee)
{
if (s != null)
{
s.Close();
}

return eee.Message;
}

return "读取成功";
}


...全文
523 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
疯魔症 2010-01-24
  • 打赏
  • 举报
回复
谢谢大家了,我的机器可能中毒了,本地向外连80时,都被收到了,肯定是中毒了。
结贴了
javabegin 2010-01-08
  • 打赏
  • 举报
回复
同意zhangkewen1234的观点,看看你要连接主机的端口状态。

你有没有服务器程序侦听这个端口啊?
qldsrx 2010-01-08
  • 打赏
  • 举报
回复
80端口很可能开着HTTP服务,那样的话,肯定能够给你连上。
zhulinxiaofeng 2010-01-08
  • 打赏
  • 举报
回复
服务端的侦听要打开了你才能连接上去啊.
telnet 服务端ip 服务端端口
看下服务侦听是不是开启就好了。

你的那几行代码没啥问题。
BaoShiqiang 2010-01-08
  • 打赏
  • 举报
回复
不懂 帮顶
m_struggle 2010-01-08
  • 打赏
  • 举报
回复
应该是端口问题
jerry_zhang99 2010-01-08
  • 打赏
  • 举报
回复
80端口是http的专用端口,其实这个一个C/S模式,个人认为,你client request server时,Server应该是要做出回应的,否则就是目标机积极拒绝了
zhangkewen1234 2010-01-08
  • 打赏
  • 举报
回复
你这个只是client端
你要看下server端有无开放你连接的端口,就是他有没有在那个端口 Listen

在服务端电脑上,dos命令上直接敲netstat -ano 就一清二楚了
ck11926375 2010-01-08
  • 打赏
  • 举报
回复
其他端口,connect时直接抛异常,应该是端口没有打开。
使用socket连接80时,没有任何异常,这个就不晓得了,80都是给网站留的。
_autotest 2010-01-08
  • 打赏
  • 举报
回复
应该是端口设置的问题
nkboy 2010-01-08
  • 打赏
  • 举报
回复
换成其他端口 要保证你的目标机器相应的端口是打开的、比如你换成11111,就得保证192.168.1.50的机器的11111端口是打开的、否则就会出现目标主机积极拒绝的一些列问题
shighui 2010-01-08
  • 打赏
  • 举报
回复
帮顶了,不懂!
lsvine 2010-01-08
  • 打赏
  • 举报
回复
貌似这个版是 VC/MFC-网络编程

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧