c#Socket提示由于套接字没有连接并且没有提供地址,发送或接收数据的请求没有被接受。

问题描述

usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Windows;usingSystem.Windows.Controls;usingSystem.Windows.Data;usingSystem.Windows.Documents;usingSystem.Windows.Input;usingSystem.Windows.Media;usingSystem.Windows.Media.Imaging;usingSystem.Windows.Navigation;usingSystem.Windows.Shapes;usingSystem.Net;usingSystem.Net.Sockets;usingSystem.IO;usingSystem.Threading;namespaceWpfApplication32{///<summary>///MainWindow.xaml的交互逻辑///</summary>publicpartialclassMainWindow:Window{publicMainWindow(){IPAddressiPAddress=IPAddress.Any;tcpServer=newTcpListener(iPAddress,333);//999是端口号,可以随便改0-1024,主要不要和什么80,8080之类的常用端口号相冲突哦。tcpServer.Start();Threadt1=newThread(ExceMethod);t1.IsBackground=true;t1.Start();}privatestaticTcpListenertcpServer=null;privatestaticbyte[]bytes=newbyte[256];privatevoidExceMethod(){byte[]msg=Encoding.UTF8.GetBytes("服务端数据");while(true){TcpClientclient=tcpServer.AcceptTcpClient();while(true){try{inti=client.Client.Receive(bytes);Console.WriteLine(DateTime.Now.ToString("G")+"接受:"+Encoding.UTF8.GetString(bytes));stringMes=Encoding.UTF8.GetString(bytes);client.Client.Send(msg);}catch{break;}}client.Close();Thread.Sleep(1000);//10000单位是毫秒,系统在运行过程中,稍微有点停顿,个人感觉会更好一点。}}}}————————————————————————————————————————-usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Windows;usingSystem.Windows.Controls;usingSystem.Windows.Data;usingSystem.Windows.Documents;usingSystem.Windows.Input;usingSystem.Windows.Media;usingSystem.Windows.Media.Imaging;usingSystem.Windows.Navigation;usingSystem.Windows.Shapes;usingSystem.Net;usingSystem.Net.Sockets;usingSystem.IO;usingSystem.Threading;namespaceWpfApplication31{///<summary>///MainWindow.xaml的交互逻辑///</summary>publicpartialclassMainWindow:Window{privatestaticTcpClientclient=newTcpClient();publicMainWindow(){TcpClienttcp=newTcpClient();/cp.Connect("127.0.0.1",333);Threadt1=newThread(ExceMethod);t1.IsBackground=true;t1.Start();}privatevoidExceMethod(){while(true){if(!Client.Connected){Test.Content="xxxx";}byte[]data=Encoding.UTF8.GetBytes("客户端数据");Socketsocket=client.Client;socket.Send(data,data.Length,SocketFlags.None);//Console.WriteLine("发送成功"+Encoding.UTF8.GetString(data));socket.Receive(data,SocketFlags.None);Console.WriteLine("接受数据"+Encoding.UTF8.GetString(data));Thread.Sleep(1000);}}}}那行代码出现了问题,提示由于套接字没有连接并且(当使用一个sendto调用发送数据报套接字时)没有提供地址,发送或接收数据的请求没有被接受。我很纳闷,查了半天网上,都没有解决,求各位大神帮忙看看

解决方案

解决方案二:
错误信息很明显啊。你为什么把连接的那行注释掉呢?TcpClienttcp=newTcpClient();//tcp.Connect("127.0.0.1",333);
解决方案三:
引用1楼Forty2的回复:

错误信息很明显啊。你为什么把连接的那行注释掉呢?TcpClienttcp=newTcpClient();//tcp.Connect("127.0.0.1",333);

那个是粘贴错了,没有注释掉
解决方案四:
顶一下,大神来帮忙
解决方案五:
你贴出来的东西错误百出,确定能跑起来?
解决方案六:
我也在怀疑撸主的代码能编译通过?
解决方案七:
引用5楼lovelj2012的回复:

我也在怀疑撸主的代码能编译通过?

TcpClienttcp=newTcpClient();//tcp.Connect("127.0.0.1",333);打错了,应该是TcpClienttcp=newTcpClient();tcp.Connect("127.0.0.1",333);
解决方案八:
引用4楼shingoscar的回复:

你贴出来的东西错误百出,确定能跑起来?

大神帮帮我吧,我还没学过,找了一周了,还是不能运行,老师要的项目就差网络了
解决方案九:
引用

if(!Client.Connected){Test.Content="xxxx";}

瞅瞅代码是不是执行到里面去了,如果是,检查一下问什么无法连接。因为你这里没有continue,会导致下面的socket发送的时候会抛出异常。
解决方案十:
while(true){TcpClientclient=tcpServer.AcceptTcpClient();//打印client终结点,看看有没有连接进来while(true){

时间: 2024-09-29 09:28:17

c#Socket提示由于套接字没有连接并且没有提供地址,发送或接收数据的请求没有被接受。的相关文章

由于套接字没有连接并且(当使用一个 sendto 调用发送数据报套接字时)没有提供地址,发送或接收数据的请求没有被接受。(含服务端代码)

问题描述 演练一个Windows应用程序-聊天软件,分别有服务端和客户端问题是在服务端激发buttonStop_Click事件时出现"由于套接字没有连接并且(当使用一个sendto调用发送数据报套接字时)没有提供地址,发送或接收数据的请求没有被接受."错误,不知道如何解决,麻烦高手帮帮我//下面是服务端代码usingSystem;usingSystem.Drawing;usingSystem.Collections;usingSystem.ComponentModel;usingSys

服务器80/21端口用telnet测试正常,但运行时提示“每个套接字地址只允许使用一次”错误。

问题描述 服务器80/21端口用telnet测试正常,但运行时提示"每个套接字地址只允许使用一次"错误. 用telnet测试万网提供的服务器80/21端口正常,但运行时提示"每个套接字地址只允许使用一次"错误.若把端口换为4567就能正常运行,但此端口没有开放.部分源代码如下 IPEndPoint localep = new IPEndPoint(IPAddress.Parse("121.42.134.161"), int.Parse("

在Linux中的使用 ss 命令检查套接字/网络连接

在Linux中的使用 ss 命令检查套接字/网络连接 ss是iproute2包的一部分(控制TCP/IP网络和流量的工具).iproute2的目标是替代先前用于配置网络接口.路由表和管理ARP表的标准Unix网络工具套装(通常称之为"net-tools").ss工具用于导出套接字统计,它可以显示与netstat类似的信息,且可以显示更多的TCP和状态信息.因为它直接从内核空间获取信息,所以会更快.ss的操作和netstat很像,所以这让它可以很容易就可以取代netstat. 使用和常见

Java Socket通信(一)之客户端程序 发送和接收数据_java

网络应用分为客户端和服务端两部分,而Socket类是负责处理客户端通信的Java类.通过这个类可以连接到指定IP或域名的服务器上,并且可以和服务器互相发送和接受数据. 对于Socket通信简述,服务端往Socket的输出流里面写东西,客户端就可以通过Socket的输入流读取对应的内容.Socket与Socket之间是双向连通的,所以客户端也可以往对应的Socket输出流里面写东西,然后服务端对应的Socket的输入流就可以读出对应的内容. 例1:客户端的简略写法(一). Socket clien

Asp.net Socket客户端(远程发送和接收数据)_实用技巧

复制代码 代码如下: /*************************************** * 对象名称: SocketObj * 功能说明: 远程发送与接收 * 试用示例: * using EC; //引用空间名 * string url = "218.75.111.74"; // URL也可以是(http://www.baidu.com/)这种形式 * int port = 8000; //端口 * string SendStr = "domainname\n

windows和linux套接字中的select机制浅析

先来谈谈为什么会出现select函数,也就是select是解决什么问题的? 平常使用的recv函数时阻塞的,也就是如果没有数据可读,recv就会一直阻塞在那里,这是如果有另外一个连接过来,就得一直等待,这样实时性就不是太好. 这个问题的几个解决方法:1. 使用ioctlsocket函数,将recv函数设置成非阻塞的,这样不管套接字上有没有数据都会立刻返回,可以重复调用recv函数,这种方式叫做轮询(polling),但是这样效率很是问题,因为,大多数时间实际上是无数据可读的,花费时间不断反复执行

[python] 专题七.网络编程之套接字Socket、TCP和UDP通信实例

        很早以前研究过C#和C++的网络通信,参考我的文章:                  C#网络编程之Tcp实现客户端和服务器聊天                 C#网络编程之套接字编程基础知识                 C#网络编程之使用Socket类Send.Receive方法的同步通讯        Python网络编程也类似.同时最近找工作笔试面试考察Socket套接字.TCP\UDP区别比较多,所以这篇文章主要精简了<Python核心编程(第二版)>第16章内

Linux下套接字详解(二)----套接字Socket

在前面我们讲了TCP/IP.TCP和UDP的一些基本知识,但是协议只有一套,而我们系统多个TCP连接或多个应用程序进程必须通过同一个 TCP协议端口传输数据.为了区别不同的应用程序进程和连接,许多计算机操作系统为应用程序与TCP/IP协议交互提供了称为套接字(Socket)的接口. 套接口可以说是网络编程中一个非常重要的概念,linux以文件的形式实现套接口,与套接口相应的文件属于sockfs特殊文件系统,创建一个套接口就是在sockfs中创建一个特殊文件,并建立起为实现套接口功能的相关数据结构

【网络编程1】Java套接字Socket

这篇博客是本人学习<Java网络程序设计>书中第4章套接字的学习总结.初学者网友学习这篇Java套接字文章,如果难于理解文章前面理论部分,可以先运行后面的程序,边看运行后面的程序边理解前面的原理,这对初学者是最好的方法.所有源代码都在文章后面我的github链接代码中. --惠州学院 13网络工程 吴成兵 20160607 目录 1 目录 1 一 流套接字概述 二 服务器套接字ServerSocket 21 ServerSocket的工程过程 22 ServerSocket构造方法 23 Se