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

服务器往客户端发送消息的时候报这个错:
错误定在://异步发送消息请求
server_socket.BeginSend(sendData, 0, sendData.Length, SocketFlags.None, new System.AsyncCallback(SendToServer), server_socket);

但是这是我按着客户端发消息的代码一点点改的不应该有错啊,百思不得原因,希望大佬助我!!!

贴上代码:

using UnityEngine;
using System.Collections;
using System.Net.Sockets;
using System.Net;
using System.Text;

public class ServerScript : MonoBehaviour
{
    //收到消息后的委托回调
    public delegate void ReceiveCallBack(string content);
    private string receive_str;
    Socket server;
    string msg = "";
    //服务器端收到消息的存储空间
    byte[] ReceiveBuffer = new byte[1024];
    //服务器收到消息后的回调委托
    private ReceiveCallBack callback;
    private Socket server_socket;

    private readonly object locker = new object();
    // Use this for initialization
    void Start()
    {
        //初始化服务器
        InitServer((string content) => {
            receive_str = content;
        });
    }

    //初始化服务器信息
    public void InitServer(ReceiveCallBack cb)
    {
        this.callback = cb;
        // 1.
         server_socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
        // 2.
        IPEndPoint endPoint = new IPEndPoint(IPAddress.Any, 5001);
        // 3.
        server_socket.Bind(endPoint);
        // 4.
        server_socket.Listen(10);
        // 5.开始异步等待客户端的请求链接
        server_socket.BeginAccept(new System.AsyncCallback(Accept), server_socket);

        this.callback("开启服务器" + endPoint.ToString());
    }

    void OnGUI()
    {
        if (receive_str != null)
        {
            GUILayout.Label(receive_str);
        }
        msg = GUI.TextField(new Rect(0, 0, 500, 40), msg);
        if (GUI.Button(new Rect(0, 50, 100, 30), "Send"))
        {
            SendMessage(msg);
        }
    }
    //接受到客户端的链接请求后的回调函数
    void Accept(System.IAsyncResult ar)
    {
        //获取正在工作的Socket对象 
        Socket socket = ar.AsyncState as Socket;
        //存储异步操作的信息,以及用户自定义的数据  
        Socket worker = socket.EndAccept(ar);
        SocketError error;
        //开始异步接收客户端发送消息内容
        worker.BeginReceive(ReceiveBuffer, 0, ReceiveBuffer.Length, SocketFlags.None, new System.AsyncCallback(Receive), worker);
        //继续异步等待新的客户端链接请求
        socket.BeginAccept(new System.AsyncCallback(Accept), socket);
    }
    //服务端收到客户端的消息后的回调函数
    void Receive(System.IAsyncResult ar)
    {
            //获取正在工作的Socket对象
            Socket worker = ar.AsyncState as Socket;
            int ByteRead = 0;
            try
            {
                ByteRead = worker.EndReceive(ar);
            }
            catch (System.Exception ex)
            {
                this.callback(ex.ToString());
            }
            if (ByteRead > 0)
            {
                string Content = Encoding.Default.GetString(ReceiveBuffer);
                this.callback(Content);
            }
            //继续异步等待客户端的发送消息请求
            worker.BeginReceive(ReceiveBuffer, 0, ReceiveBuffer.Length, SocketFlags.None, new System.AsyncCallback(Receive), worker);
    }
    public void SendMessage(string message)
    {
        if (message == null)
            return;

        message += "\r\n";
        byte[] sendData = Encoding.UTF8.GetBytes(message);
        //异步发送消息请求
        server_socket.BeginSend(sendData, 0, sendData.Length, SocketFlags.None, new System.AsyncCallback(SendToServer), server_socket);
    }
    //发送消息结束的回调函数
    void SendToServer(System.IAsyncResult ar)
    {
        Socket worker = ar.AsyncState as Socket;
        worker.EndSend(ar);
    }
}

图片说明

c#
0

2个回答

这行有问题,服务器发送数据时要使用持有的客户端socket对象来发送

server_socket.BeginSend(sendData, 0, sendData.Length, SocketFlags.None, new System.AsyncCallback(SendToServer), server_socket);

改为:

worker.BeginSend(sendData, 0, sendData.Length, SocketFlags.None, new System.AsyncCallback(SendToServer), worker);

0

没客户端连接,就向客户端发送消息或客户端断开导致的

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
由于套接 字没有连接并且(当使用一个 sendto 调用发送数据报套接字时)没有提供地址
在学习Socket编程时,总是遇到这个问题,到网上搜了一下,做了一个小小的总结,希望它对你有帮助。 1. 首先在shutdown时,我发现遇到了这个问题,后来在csdn上找到了一些东西 从函数调用上来分析(msdn):一旦完成了套接字的连接,应当将套接字关闭,并且释放其套接字句柄所占用的所有资源。真正释放一个已经打开的套接字句柄的资源直接调用closesocket即可,但要明白closesocket的调用可能会带来负面影响,具体的影响和如何调用有关,最明显的影响是数据丢失,因此一般都要在closesoc
System.Net.Sockets.SocketException:“由于套接字没有连接并且(当使用一个 sendto 调用发送数据报套接字时)没有提供地址,发送或接收数据的请求没有被接受。”
在将TCP协议下的客户端/服务端信息传送程序改为UDP下的时,出现了上述错误。 最终解决方法是 将代码ShowMsg(socketSend.RemoteEndPoint + ": 接收文件成功"); 中的socketSend.RemoteEndPoint 去掉。具体原因可能是UDP下的socket不存在这种调用。 ...
python3:error10057由于套接字没有连接并且(当使用一个 sendto 调用发送数据报套接字时)没有提供地址,发送或接收数据的请求没有被接受
今天在看《Python基础教程(第3版)》的网络编程章节时,有一个通过select实现简单服务器的例程,例程如下: import socket,select s=socket.socket() host=socket.gethostname() port=1234 s.bind((host,port)) s.listen(5) inputs=[s] while True: rs,w...
C# Socket在连接目标主机成功后的瞬间接、发操作必须要加锁;
如题: C# Socket在连接目标主机成功后的瞬间接、发操作必须要加锁; 经过100~300次的调试次数,该问题,在Win7不会出现,在XP,100%出现,可能也是Socket调用系统底层,的问题,这时看的就是操作系统底层的一些稳定性了; 从而可以看到,Win7底层是比XP稳定的; 因为在Win7,C# Socket在连接目标主机成功后的瞬间接、发操作可以 不加锁操作
socket编程中tcp服务器: OSError: [WinError 10057] 的解决办法【附常见WinError错误】
OSError: [WinError 10057] 由于套接字没有连接并且(当使用一个 sendto 调用发送数据报套接字时)没有提供地址,发送或接收数据的请求没有被接受。 报错如上图 在几番查找前辈们的解决方案时:发现大多是说应该是使用shutdown来关闭套接字,显然这个问题不适用于这里。点击跳转查看 直到发现了这位前辈的文章:点这里查看原文章 ...
sql server 错误代码大全
sql server 错误代码大全。例如:10057 由于套接字没有连接并且 (当使用一个 sendto 调用发送数据报套接字时) 没有提供地址,发送或接收数据的请求没有被接受。
由于套接字没有连接并且没有提供地址,发送或接收数据的请求没有被接受。
Warning: socket_read(): unable to read from socket [0]: 由于套接字没有连接并且(当使用一个 sendto 调用发送数据报套接字时)没有提供地址,发送或接收数据的请求没有被接受。rnrn我建了两个文件xx.php是在服务器端执行的文件。x.php是在客户端执行的文件。rnxx.phprn[code=PHP]rnrn[/code]rnx.phprn[code=PHP][/code]rn哪位大神帮我看下,找了好多资料都没解决。
php+socket 由于套接字没有连接并且没有提供地址,发送或接收数据的请求没有被接受。
Warning: socket_read(): unable to read from socket [0]: 由于套接字没有连接并且(当使用一个 sendto 调用发送数据报套接字时)没有提供地址,发送或接收数据的请求没有被接受。rn我建了两个文件xx.php是在服务器端执行的文件。x.php是在客户端执行的文件。rnxx.phprn[code=PHP]rn[/code]rnrnrnx.phprn[code=PHP][/code]rnrn在服务器先打开xx.php,然后再在客户端打开x.php,结果服务器端提示以上错误信息,就是socket_read的错误。rn哪位大神帮我看下,找了好多资料都没解决。
求助:PHP+SOCKET 由于套接字没有连接并且没有提供地址,发送或接收数据的请求没有被接受。
由于之前连续发布了两篇帖子,无一有回,所以先向版主申请删除之前两篇类似的帖子,不然留着无用。就像垃圾一样。rn然后希望大神,能根据我提供的代码,稍作修改,使得代码能够正确运行,谢谢!rnrn具体如下:rnWarning: socket_read(): unable to read from socket [0]: 由于套接字没有连接并且(当使用一个 sendto 调用发送数据报套接字时)没有提供地址,发送或接收数据的请求没有被接受。rn我建了两个文件xx.php是在服务器端执行的文件。x.php是在客户端执行的文件。rnxx.phprn[code=PHP]rn[/code]rnrnrnrnx.phprn[code=PHP][/code]rnrnrn在服务器先打开xx.php,然后再在客户端打开x.php,结果服务器端提示以上错误信息,就是socket_read的错误。rn哪位大神帮我看下,找了好多资料都没解决。
c#Socket提示由于套接字没有连接并且没有提供地址,发送或接收数据的请求没有被接受。
rnusing System;rnusing System.Collections.Generic;rnusing System.Linq;rnusing System.Text;rnusing System.Threading.Tasks;rnusing System.Windows;rnusing System.Windows.Controls;rnusing System.Windows.Data;rnusing System.Windows.Documents;rnusing System.Windows.Input;rnusing System.Windows.Media;rnusing System.Windows.Media.Imaging;rnusing System.Windows.Navigation;rnusing System.Windows.Shapes;rnusing System.Net;rnusing System.Net.Sockets;rnusing System.IO;rnusing System.Threading;rnrnrnnamespace WpfApplication32rnrn /// rn /// MainWindow.xaml 的交互逻辑rn /// rn public partial class MainWindow : Windowrn rnrnrnrn public MainWindow()rn rnrnrn IPAddress iPAddress = IPAddress.Any;rn tcpServer = new TcpListener(iPAddress, 333);rn //999是端口号,可以随便改 0-1024,主要不要和什么80,8080之类的常用端口号相冲突哦。rn tcpServer.Start();rnrnrn Thread t1 = new Thread(ExceMethod);rn t1.IsBackground = true;rn t1.Start();rnrnrnrn rn private static TcpListener tcpServer = null;rnrn private static byte[] bytes = new byte[256];rn private void ExceMethod()rn rn byte[] msg = Encoding.UTF8.GetBytes("服务端数据");rnrn while (true)rn rnrn TcpClient client = tcpServer.AcceptTcpClient();rn rnrn while (true)rn rn tryrn rnrn int i = client.Client.Receive(bytes);rnrn Console.WriteLine(DateTime.Now.ToString("G") + "接受:" + Encoding.UTF8.GetString(bytes));rn string Mes = Encoding.UTF8.GetString(bytes);rnrn client.Client.Send(msg);rn rnrn catchrn rn break;rn rnrn rn client.Close();rnrn Thread.Sleep(1000);//10000单位是毫秒,系统在运行过程中,稍微有点停顿,个人感觉会更好一点。rnrn rn rn rnrn————————————————————————————————————————-rnusing System;rnusing System.Collections.Generic;rnusing System.Linq;rnusing System.Text;rnusing System.Threading.Tasks;rnusing System.Windows;rnusing System.Windows.Controls;rnusing System.Windows.Data;rnusing System.Windows.Documents;rnusing System.Windows.Input;rnusing System.Windows.Media;rnusing System.Windows.Media.Imaging;rnusing System.Windows.Navigation;rnusing System.Windows.Shapes;rnusing System.Net;rnusing System.Net.Sockets;rnusing System.IO;rnusing System.Threading;rnrnnamespace WpfApplication31rnrn /// rn /// MainWindow.xaml 的交互逻辑rn /// rnrnrn public partial class MainWindow : Windowrn rn private static TcpClient client = new TcpClient();rn public MainWindow()rn rn TcpClient tcp = new TcpClient();rn /cp.Connect("127.0.0.1", 333);rnrn Thread t1 = new Thread(ExceMethod);rn t1.IsBackground = true;rn t1.Start();rnrnrnrnrnrnrnrnrn rn private void ExceMethod()rn rn while (true)rn rnrn if (!Client.Connected)rn rn Test.Content = "xxxx";rnrn rn byte[] data = Encoding.UTF8.GetBytes("客户端数据");rn rnrn Socket socket = client.Client;rn [color=#FF0000] socket.Send(data, data.Length, SocketFlags.None);[/color]rn //Console.WriteLine("发送成功" + Encoding.UTF8.GetString(data));rnrn socket.Receive(data, SocketFlags.None);rn Console.WriteLine("接受数据" + Encoding.UTF8.GetString(data));rn Thread.Sleep(1000);rnrn rnrn rnrn rnrnrnrn那行代码出现了问题,提示 由于套接字没有连接并且(当使用一个 sendto 调用发送数据报套接字时)没有提供地址,发送或接收数据的请求没有被接受。我很纳闷,查了半天网上,都没有解决,求各位大神帮忙看看rn
SOCKET错误问题
原文地址:http://blog.csdn.net/meiyuli/article/details/7168986 平台:xp sp3+vc6。 测试方法: retval = function(....) if(retval == SOCKET_ERROR) r = WSAGetLastError(); 各种情况下的返回值由retval取得。 错误号由r取得。 错误查询
socket error即Windows套接字错误代码
返回代码/值 描述 WSA_INVALID_HANDLE 6 指定的事件对象句柄无效。 应用程序尝试使用事件对象,但指定的句柄无效。请注意,此错误由操作系统返回,因此Windows的将来的版本中的错误号可能会更改。 WSA_NOT_ENOUGH_MEMORY 8 内存不足。 应用程序使用直接映射到Windows功能的Windows Sockets功能。Windows功能表明缺少所需
在线等:reporting service错误:由于套接字没有连接 发送或接收数据的请求没有被接受
在生成报表的时候出现以下错误,服务器上装的有瑞星防火墙,出现这个错误的时候,一登录服务器操作系统,就没事了,很奇怪rnrnrn“/”应用程序中的服务器错误。rn--------------------------------------------------------------------------------rnrn由于套接字没有连接并且(当使用一个 sendto 调用发送数据报套接字时)没有提供地址,发送或接收数据的请求没有被接受。 XX.XXX.XX.xXX:80 rn说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 rnrn异常详细信息: System.Net.Sockets.SocketException: 由于套接字没有连接并且(当使用一个 sendto 调用发送数据报套接字时)没有提供地址,发送或接收数据的请求没有被接受。 XX.XXX.XX.xXX:80rnrn源错误: rnrn执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。 rnrn堆栈跟踪: rnrnrn[SocketException (0x2749): 由于套接字没有连接并且(当使用一个 sendto 调用发送数据报套接字时)没有提供地址,发送或接收数据的请求没有被接受。 59.108.227.116:80]rn System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress) +1073657rn System.Net.Sockets.Socket.InternalConnect(EndPoint remoteEP) +33rn System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Int32 timeout, Exception& exception) +217rnrn[WebException: 无法连接到远程服务器]rn Microsoft.SqlServer.ReportingServices2005.Execution.RSExecutionConnection.GetSecureMethods() +212rn Microsoft.SqlServer.ReportingServices2005.Execution.RSExecutionConnection.IsSecureMethod(String methodname) +42rn Microsoft.SqlServer.ReportingServices2005.Execution.RSExecutionConnection.LoadReport(String Report, String HistoryID) +131rn Microsoft.Reporting.WebForms.ServerReport.GetExecutionInfo() +118rn Microsoft.Reporting.WebForms.ServerReport.SetParameters(IEnumerable`1 parameters) +67rn ReportManage_Report_Contract_resign.Button1_Click(Object sender, EventArgs e) +380rn System.Web.UI.WebControls.Button.OnClick(EventArgs e) +105rn System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +107rn System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +7rn System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +11rn System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33rn System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +rn rn
使用socket函数的一些常见错误
原文地址:使用socket函数的一些常见错误1.socketSOCKET socket( int af, int type, int protocol ); af:常为AF_INET 使用AF_ISO等其他地址族标识,而非AF_INET。 返回:-1。 错误:10047(使用了与请求的协议不兼容的地址) type,通常为SOCK_STREAM或SOCK_DGRAM 头文件中定义的只有如下几种
由于套接字没有连接并且(当使用一个 sendto 调用发送数据报套接字时)没有提供地址,发送或接收数据的请求没有被接受。
由于套接字没有连接并且(当使用一个 sendto 调用发送数据报套接字时)没有提供地址,发送或接收数据的请求没有被接受。rnrn代码是这样的:rn[code=C/C++]rn m_lpSendZemiPacket->dwSize = ZEMIPACKETHEADER_SIZE + size;rnrn int r1 = 0, r2 = 0;rn int fail_count = 0;rn rn while (TRUE)rn rn r2 = send(m_Socket,(char *)m_lpSendZemiPacket, m_lpSendZemiPacket->dwSize, 0);rnrn DWORD r = GetLastError() ; //--这里偶尔出现10057的错误rnrn if (r2 != SOCKET_ERROR)rn r1 += r2;rnrn if (r1 == m_lpSendZemiPacket->dwSize)rn break;rnrn fail_count++;rnrn //--chenxidurn if (fail_count > 10)rn return FALSE;rn rnrn return TRUE;rn[/code]rnrnrn 请高手指点,谢谢
由于套接字没有连接并且(当使用一个 sendto 调用发送数据报套接字时)没有提供地址,发送或接收数据的请求没有被接受。(含服务端代码)
演练一个Windows应用程序-聊天软件,分别有服务端和客户端rn问题是在服务端激发buttonStop_Click事件时出现"由于套接字没有连接并且(当使用一个 sendto 调用发送数据报套接字时)没有提供地址,发送或接收数据的请求没有被接受。"错误,不知道如何解决,麻烦高手帮帮我rn//下面是服务端代码rnusing System;rnusing System.Drawing;rnusing System.Collections;rnusing System.ComponentModel;rnusing System.Windows.Forms;rnusing System.Data;rnusing System.IO;rnusing System.Net;rnusing System.Net.Sockets;rnusing System.Threading;rnrnnamespace WinAp1rnrn /// rn /// Form1 的摘要说明。rn /// rn public class Form1 : System.Windows.Forms.Formrn rn private System.Windows.Forms.Button buttonStart;rn private System.Windows.Forms.GroupBox groupBox1;rn private System.Windows.Forms.RichTextBox richTextBoxAc;rn private System.Windows.Forms.RichTextBox richTextBoxSend;rn private System.Windows.Forms.ListBox listBoxState;rn private System.Windows.Forms.Button buttonSend;rn private System.Windows.Forms.Button buttonStop;rn private System.Windows.Forms.TextBox textBoxIP;rn private System.Windows.Forms.TextBox textBoxPort;rn private System.Windows.Forms.Label label1;rn private System.Windows.Forms.Label label2;rn private System.Windows.Forms.Label label3;rn private System.Windows.Forms.Label label4;rn //添加私有成员rn private Socket socket;rn private Socket clientSocket;rn private Thread thread;rn /// rn /// 必需的设计器变量。rn /// rn private System.ComponentModel.Container components = null;rnrn public Form1()rn rn //rn // Windows 窗体设计器支持所必需的rn //rn InitializeComponent();rnrn //rn // TODO: 在 InitializeComponent 调用后添加任何构造函数代码rn //rn this.listBoxState.Items.Clear();rn this.richTextBoxAc.Text="";rn this.richTextBoxSend.Text="";rn rnrn /// rn /// 清理所有正在使用的资源。rn /// rn protected override void Dispose( bool disposing )rn rn if( disposing )rn rn if (components != null) rn rn components.Dispose();rn rn rn base.Dispose( disposing );rn rnrn #region Windows 窗体设计器生成的代码rn /// rn /// 设计器支持所需的方法 - 不要使用代码编辑器修改rn /// 此方法的内容。rn /// rn private void InitializeComponent()rn rn rn //由于帖只太长该部分省略rnrn rn #endregionrnrn /// rn /// 应用程序的主入口点。rn /// rn [STAThread]rn static void Main() rn rn rn Application.Run(new Form1());rn rn private void AcceptMessage()rn rn while(true)rn rn tryrn rn NetworkStream netStream=new NetworkStream(clientSocket);rn byte[] datasize=new byte[4];rn netStream.Read(datasize,0,4);rn int size=System.BitConverter.ToInt32(datasize,0);rn byte[] message=new byte[size];rn int dataleft=size;rn int start=0;rn while(dataleft>0)rn rn int recv=netStream.Read(message,start,dataleft);rn start+=recv;rn dataleft-=recv;rn rn this.richTextBoxAc.Rtf=System.Text.Encoding.Unicode.GetString(message);rn rn catchrn rn this.listBoxState.Items.Add("与客户断开连接");rn break;rn rn rnrnrn rnrn private void buttonStart_Click(object sender, System.EventArgs e)rn rn this.buttonStart.Enabled=false;rn IPAddress ip=IPAddress.Parse(this.textBoxIP.Text);rn IPEndPoint server=new IPEndPoint(ip,Int32.Parse(this.textBoxPort.Text));rn socket=new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);rn socket.Bind(server);rn socket.Listen(10);rn clientSocket=socket.Accept();rn this.listBoxState.Items.Add("与客户"+clientSocket.RemoteEndPoint.ToString()+"建立连接");rn thread=new Thread(new ThreadStart(AcceptMessage));rn thread.Start();rn rnrn private void buttonSend_Click(object sender, System.EventArgs e)rn rn string str=this.richTextBoxSend.Rtf;rn int i=str.Length;rn if(i==0)rn rn return;rn rn elsern rn i*=2;rn rn byte[] datasize=new byte[4];rn datasize=System.BitConverter.GetBytes(i);rn byte[] sendbytes=System.Text.Encoding.Unicode.GetBytes(str);rn tryrn rn NetworkStream netStream=new NetworkStream(clientSocket);rn netStream.Write(datasize,0,4);rn netStream.Write(sendbytes,0,sendbytes.Length);rn netStream.Flush();rn this.richTextBoxSend.Rtf="";rnrn rn catchrn rn MessageBox.Show("无法发送");rn rn rn rnrn private void buttonStop_Click(object sender, System.EventArgs e)rn rn this.buttonStart.Enabled=true;rn rn rn socket.Shutdown(SocketShutdown.Both);rn rn rn if(clientSocket.Connected)rn rn clientSocket.Close();rn thread.Abort();rn rn socket.Close();rn rn /*catchrn rn MessageBox.Show("监听尚未开始,关闭无效!");rn */rnrn rn rn private void Form1_Closing(object sender,System.ComponentModel.CancelEventArgs e)rn rn tryrn rn socket.Shutdown(SocketShutdown.Both);rn socket.Close();rn if(clientSocket.Connected)rn rn clientSocket.Close();rn thread.Abort();rn rn rn catchrn rnrn rn rn rnrnrnrnrn
由于套接字没有连接并且(当使用一个 sendto 调用发送数据报套接字时)没有提供地址,发送或接收数据的请求没有被接受。(客户端代码)
//客户端代码rnusing System;rnusing System.Drawing;rnusing System.Collections;rnusing System.ComponentModel;rnusing System.Windows.Forms;rnusing System.Data;rnusing System.Net;rnusing System.Net.Sockets;rnusing System.Threading;rnrnrnnamespace WinAp2rnrn /// rn /// Form1 的摘要说明。rn /// rn public class Form1 : System.Windows.Forms.Formrn rn private System.Windows.Forms.GroupBox groupBox1;rn private System.Windows.Forms.RichTextBox richTextBoxReceive;rn private System.Windows.Forms.RichTextBox richTextBoxSend;rn private System.Windows.Forms.ListBox listBoxState;rn private System.Windows.Forms.Button buttonRequest;rn private System.Windows.Forms.Button buttonSend;rn private System.Windows.Forms.Button buttonClose;rn private System.Windows.Forms.TextBox textBoxIP;rn private System.Windows.Forms.Label label1;rn private System.Windows.Forms.Label label2;rn private System.Windows.Forms.Label label3;rn private System.Windows.Forms.Label label4;rn //添加私有成员rn private Socket socket;rn private Thread thread;rn private System.Windows.Forms.TextBox textBoxPort;rnrn /// rn /// 必需的设计器变量。rn /// rn private System.ComponentModel.Container components = null;rnrn public Form1()rn rn //rn // Windows 窗体设计器支持所必需的rn //rn InitializeComponent();rnrn //rn // TODO: 在 InitializeComponent 调用后添加任何构造函数代码rn //rn this.richTextBoxSend.Text="";rn this.richTextBoxReceive.Text="";rn this.listBoxState.Items.Clear();rnrn rnrn /// rn /// 清理所有正在使用的资源。rn /// rn protected override void Dispose( bool disposing )rn rn if( disposing )rn rn if (components != null) rn rn components.Dispose();rn rn rn base.Dispose( disposing );rn rnrn #region Windows 窗体设计器生成的代码rn /// rn /// 设计器支持所需的方法 - 不要使用代码编辑器修改rn /// 此方法的内容。rn /// rn private void InitializeComponent()rn rn //由于帖只太长该部分省略rn rn #endregionrnrn /// rn /// 应用程序的主入口点。rn /// rn [STAThread]rn static void Main() rn rn Application.Run(new Form1());rn rn private void AcceptMessage()rn rn while(true)rn rn tryrn rn NetworkStream netStream=new NetworkStream(socket);rn byte[] datasize=new byte[4];rn netStream.Read(datasize,0,4);rn int size=System.BitConverter.ToInt32(datasize,0);rn byte[] message=new byte[size];rn int dataleft=size;rn int start=0;rn while(dataleft>0)rn rn int recv=netStream.Read(message,start,dataleft);rn start+=recv;rn dataleft-=recv;rn rn this.richTextBoxReceive.Rtf=System.Text.Encoding.Unicode.GetString(message);rn rn catchrn rn this.listBoxState.Items.Add("与服务器断开");rn break;rn rn rn rnrn private void buttonRequest_Click(object sender, System.EventArgs e)rn rn IPAddress ip=IPAddress.Parse(this.textBoxIP.Text);rn IPEndPoint server=new IPEndPoint(ip,Int32.Parse(this.textBoxPort.Text));rn socket=new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);rn tryrn rn socket.Connect(server);rn rn catchrn rn MessageBox.Show("与服务器连接失败");rn return;rn rn this.buttonRequest.Enabled=false;rn this.listBoxState.Items.Add("与服务器连接成功");rn Thread thread=new Thread(new ThreadStart(AcceptMessage));rn thread.Start();rnrn rn rnrn private void buttonClose_Click(object sender, System.EventArgs e)rn rn //tryrn //rn socket.Shutdown(SocketShutdown.Both);rn socket.Close();rn this.listBoxState.Items.Add("与主机断开连接");rn thread.Abort();rn //rn /*catchrn rn MessageBox.Show("尚未与主机连接,断开无效");rn rn this.buttonRequest.Enabled=true;*/rnrn rnrn private void buttonSend_Click(object sender, System.EventArgs e)rn rn string str=this.richTextBoxSend.Rtf;rn ;rn int i=str.Length;rn if(i==0)rn rn return;rn rn elsern rn i*=2;rn rn byte[] datasize=new byte[4];rn datasize=System.BitConverter.GetBytes(i);rn byte[] sendbytes=System.Text.Encoding.Unicode.GetBytes(str);rn tryrn rn NetworkStream netStream=new NetworkStream(socket);rn netStream.Write(datasize,0,4);rn netStream.Write(sendbytes,0,sendbytes.Length);rn netStream.Flush();rn this.richTextBoxSend.Text="";rn rn catchrn rn MessageBox.Show("无法连接");rn rnrn rn private void Form1_Closing(object sender,System.ComponentModel.CancelEventArgs e)rn rn tryrn rn socket.Shutdown(SocketShutdown.Both);rn socket.Close();rn rn catchrn rn rn rn rnrn rnrn
Python全栈学习笔记day 30:网络编程基础、基于TCP协议的socket、OSError: [WinError 10048]解决方法
一、网络编程基础 C/S架构C/S即:Client与Server ,中文意思:客户端与服务器端架构 B/S即:Browser与Server,中文意思:浏览器端与服务器端架构,这种架构是从用户层面来划分的。 ip:规定网络地址的协议叫ip协议,定义的地址称之为ip地址,广泛采用的v4版本即ipv4, mac地址:送端和接收端的地址便是指网卡的地址,即mac地址。 arp协议(地址解析协...
sock编程常见的错误
使用socket函数的一些常见错误 学习中遇到了返回10038的错误,在网上遇到了这篇文章。 1。socket SOCKETsocket( int af, int type, int protocol ); 》》af,通常为AF_INET 使用AF_ISO等其他地址族标识,而非AF_INET。 返回:-1。 错误:10047(使用了与请求的协议不兼容的地址
没有终结点在侦听可以接受消息的 http://******/Service.asmx。 这通常是由于不正确的地址或者 SOAP 操作导致的。如果存在此情况, 请参见 InnerExc
没有终结点在侦听可以接受消息的 http://***************/Service.asmx。 这通常是由于不正确的地址或者 SOAP 操作导致的。如果存在此情况, 请参见 InnerException 以了解详细信息。 问题分析:IP地址有问题,和之前连接的地址不一样 解决方法:把IP修改成和提示中 http://******/Service.asmx中的*********相同。
Windows远程桌面方式-由于没有远程桌面授权服务器可以提供许可证,远程会话连接已断开。请跟服务器管理员联系。
对于大多数据Windows用户来讲最常用的远程桌面方式是系统自带的 使用方便,这种方式一般局域网使用较多,而对于非统一局域网内的用户来讲,远程其他地方的电脑则相对比较麻烦,需要知道对方外网IP 连接方式一: 搜索 mstsc 或者远程桌面 但是这种方式也不是每次都能起效 连接方式二: 当遇见“由于没有远程桌面授权服务器可以提供许可证,远程会话连接已断开。请跟服务器管理员联系。”...
没有终结点在侦听可以接受消息的*这通常是由于不正确的地址或者 SOAP操作导致的
没有终结点在侦听可以接受消息的*这通常是由于不正确的地址或者 SOAP操作导致的 引发原因:项目启动时,前端调用  wcf地址,引用的地址访问无法在 IIS Express找到导致该错误   解决方法,找出前端的web.config 查看引用的项目是什么地址开头,如   localhost:1993/wcf/xxx,右键wcf项目,属性,web,在项目URL改成如下图地址。修改好后点击创...
C#调用WebService时报错:“没有终结点在侦听可以接受消息的 XXXX.asmx。这通常是由于不正确的地址或者 SOAP 操作导致的”
问题描述   用户在使用我们开发的C#编写的C/S架构的程序时报错,错误消息为:   “没有终结点在侦听可以接受消息的 XXXX.asmx。这通常是由于不正确的地址或者 SOAP 操作导致的。如果存在此情况,请参见 InnerException 以了解详细信息。”   这种错误的常见原因有:     1)WebService的服务地址出错,这时候可以把webservice地址复制到浏览器上...
远程连接Windows服务器 【由于没有远程桌面授权服务器可以提供许可证,远程会话被中断。】mstsc /admin
远程连接Windows服务器 【由于没有远程桌面授权服务器可以提供许可证,远程会话被中断。】mstsc /admin
C#套接字学习总结
C# 实现基本的套接字TCP通信 在C#中,实现了很多对Windows  API的封装,在套接字通信方面也是如此。下面是一个TCP网络通信的简单实例,因为自己初学C#,记下来 学习 使用名字空间: using System.NET; using System.Net.Sockets; 服务器端: 五个步骤: (1) 创
解决SendTo拒绝访问
本来想把peid添加到sendTo里面,按网上的教程,运行sendto,结果出现拒绝访问。 解决方法: 在windows下面找到它的文件夹就行了: C:\Users\XXX\AppData\Roaming\Microsoft\Windows\SendTo   XXX代表的是用户名。 好了,只要给peid新建一个快捷方式,再把这个快捷方式拖到这个文件夹下面来就行了
没有终结点在侦听可以接受消息的 http://localhost:8102/Services.BILLTEMPLATEService。这通常是由于不正确的地址或者 SOAP 操作导致的。如果存在此情况
错误信息: System.ServiceModel.EndpointNotFoundException: 没有终结点在侦听可以接受消息的 http://localhost:8102/Services.BILLTEMPLATEService。这通常是由于不正确的地址或者 SOAP 操作导致的。如果存在此情况,请参见 InnerException 以了解详细信息。 ---> System.Ne...
win server 2008 R2“由于没有远程桌面授权服务器可以提供许可证,远程会话被中断。请跟服务器管理员联系。”
win server 2008 R2“由于没有远程桌面授权服务器可以提供许可证,远程会话被中断。请跟服务器管理员联系。” 更改RD授权模式(如果授权到期后(即120天后),授权诊断“没有远程桌面服务器提供的授权许可证”)          解决办法:                    重新指定“授权服务器”即可   参看:http://technet.microsoft.
没有终结点在侦听可以接受消息的 XXXXXX 这通常是由于不正确的地址或者 SOAP 操作导致的
问题: 没有终结点在侦听可以接受消息的 http://192.168.1.176:50001/SomPatientsService.asmx。这通常是由于不正确的地址或者 SOAP 操作导致的。如果存在此情况,请参见 InnerException 以了解详细信息。 --------------------------- 異常 ------------------------
Windows套接字错误代码说明
WSAEINTR (10004) 翻译: 中断函数调用。说明: 阻止操作被中断通过调用 WSACancelBlockingCall (Wsapiref_704y.asp)。 WSAEACCES (10013) 翻译: 权限被拒绝。说明: 尝试访问套接字访问权限被禁止的方式。例如,广播的地址可用于发送到但广播的权限未设置通过使用 setsockopt(SO_BROADCAST) 时,将
套接字编程非阻塞
非阻塞 connect: 在一个 TCP 套接字被设置为非阻塞之后调用 connect ,connect 会立即返回  EINPROGRESS  错误,表示连接操作正在进行中,但是仍未完成,与此同时 TCP 三次握手操作会同时进行。在这之后,我们可以通过调用 select 来检查这个链接是否建立成功。   非阻塞 connect 有三种用途:    1.我们可以在 TCP 三次握手的
套接字原理----socket
运行在不同机器上的进程彼此通过向套接字发送报文来进行通信。每个进程好比是一座房子,进程的套接字就好比是一个门。套接字是应用进程和TCP之间的门,应用程序开发者可以控制套接字的应用层那一侧所有的东西,但是不能控制运输层那一侧。   服务器为了能对客户机程序发起连接作出响应,应满足:   第一、服务器程序不能处于休眠状态;   第二、服务器程序必须有某种套接字。 socket通信流
send, sendto, sendmsg - 从套接字发送消息
NAME send, sendto, sendmsg - 从套接字发送消息   概述 #include #include int send(int s, const void *msg, size_t len, int flags); int sendto(int s, const void *msg, size_t len, int flags, const stru
根本解决:由于没有远程桌面授权服务器可以提供许可证,远程会话被中断。
Windows server2012服务器远程桌面登录时出现错误提示:“由于没有远程桌面授权服务器可以提供许可证,远程会话被中断。请跟服务器管理员联系。”此时可以使用“mstsc/admin /v:目标ip”来强制登录服务器,但只能是管理员身份。 按照网上说的某种方法,删除注册表以下项:HKEY_LOCAL_MACHINE\Software\Microsoft\MSLicensing。 并
网卡只有发送,没有接收
前天有台服务器突然网络不通了,网络显示已连接,设的固定IP,无法ping通,改成自动获取,无法获取到IP。 1.重启服务器,以前碰到过类似情况,重启一下就好了,重启后问题依旧 2.检查网线,把旁边另外一台服务器的网线临时拔过来插了一下,也没用 3.换网卡,这台服务器上有3块网卡,也没用 4.检查内存,以前碰到过服务器内存有问题导致网络不同,问题依旧 5.开始考虑是系统
已解决 wampserver 连接不上数据库 #2002 - — 服务器没有响应(或本地服务器的套接字没有正确设置)。
重装了系统 win10 装了 wampserver3.1.3 这个版本有mysql 与maria DB 可选,但是在连接数据库时无论用Adminer还是phpMyAdmin都连接不上,phpMyAdmin报#2002 - — 服务器没有响应(或本地服务器的套接字没有正确设置)。百度上查查大多是改phpMyAdmin所在目录要将 config.inc.php 中 $cfg[‘Se...
TCP的数据发送和接收
TCP通信的单位是一个报文,TCP报文包括报文头部和数据部分,头部最少占用20个字节。运用TCP协议进行通信前需要建立连接(三次握手),数据传输完成后,最后需要断开连接(4次握手)。          TCP发送缓存和接收缓存,TCP发送窗口和接收窗口,以及拥塞窗口。          TCP的可靠传输是通过滑动窗口来实现的。TCP的滑动窗口的单位是字节的。          发送窗口中是表
Server2008R2:由于没有远程桌面授权服务器可以提供许可证,远程会话被中断..错误的解决方法
Server2008R2:由于没有远程桌面授权服务器可以提供许可证,远程会话被中断..错误的解决方法 一直使用远程桌面连接一台windows2008server服务器,今天突然报错,连不上了: “由于没有远程桌面授权服务器可以提供许可证,远程会话被中断。请跟服务器管理员联系。” 由于是一台共用的服务器,不知道谁操作了什么。根据错误提示google解决方法,大都让删除MSL
由于目标计算机积极拒绝,无法连接。由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。 python爬虫
采用爬虫下载视频,更换下载链接后,程序意外报错,如下: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝,无法连接。 或者如下: Failed to establish a new connection: [WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。 主...
Socket收发数据浅析
作为一个套接字描述符,它拥有两个缓冲区,分别为接收数据缓冲和发送数据缓冲区,当套接字有数据到达时,首先进入的就是接收数据缓冲区,然后应用程序从这个缓冲区中将数据读出来,这就是套接字recv的过程,应用程序调用send发送数据实际是把数据拷贝到发送数据缓冲区,再由系统在缓冲区的数据发送出去。缓冲区的大小可以用SetSocketOpt()设定,同时操作系统对它有一个默认大小。 当套接字接受数据缓冲区满
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 数据库没有选修课程 没有机器学习大数据

相似问题

2
由于套接字没有连接并且没有提供地址,发送或接收数据的请求没有被接受?
3
C# MVC 获取客户端IP详细地址
5
C#怎么判断除了管理员以外的所有用户都不能修改或删除数据,if括号里条件应该是什么
2
未能加载文件或程序集“CefSharp.Core.dll”或它的某一个依赖项。找不到指定的模块。
1
调用委托后,只打印了Method方法,为什么没有调用MethodA???
4
c# winform ,大片机接收缓存有限,串口向单片机发送大量数据时,只会执行前面的内容,后面的数据全部丢失
1
C#连接本地Mysql数据库失败
1
由于异常的数据包格式,握手失败
3
C# VS添加实体数据模型,连接阿里云服务器的数据库
1
请求接口反馈DClient must be used 这句话是什么意思 有大佬解释下吗
0
当unity 用sokcet发数据给服务器的时候 就出现远程主机强迫关闭现有连接,服务器是开着的
3
C#怎么连接Webservice服务?
1
IIS 部署网站,连接为指定特定用户,指定的密码无效要怎么解决?
0
Visual Studio 2017 自定义项目模板导出没有代码,只有引用
2
c#2015中止调试后多个文档窗口自动关闭并且打不开了
1
容联短信验证报错K();却提示未能找到类型或命名空间名CCPRestSDK
0
基础连接已经关闭: 服务器关闭了本应保持活动状态的连接
2
sqlserver 实现*查询所有字段并且让其中一个字段排在最末尾
0
Azure function C# 如何监视Connection Pool的连接状态
1
未能加载文件或程序集“ ”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。