未处理的“System.Net.Sockets.SocketException”类型的异常出现在 System.dll 中。其他信息: 由于套接字没有连接并且(当使用一个 sendto 调用发送数据报套接字时)没有提供地址,发送或接收数据的请求没有被接受。
一个简单的客户端/服务器的控制台
调试的时候就出现这个提示代码:
客户端
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Net.Sockets;namespace socket_client_test
{
    class Program
    {
        static void Main(string[] args)
        {
            IPEndPoint ipep = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 6099);
            Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);            socket.Connect(ipep);
            byte[] msg = Encoding.ASCII.GetBytes("qwerasdf");
            socket.Send(msg, msg.Length, SocketFlags.None);
            socket.Close();
        }
    }
}服务端
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Net.Sockets;namespace socket_server_test
{
    class Program
    {
        static void Main(string[] args)
        {
            IPEndPoint ipep = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 6099);
            Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            socket.Bind(ipep);
            socket.Listen(10);
            socket.Accept();
            if (socket == null)
            {
                Console.WriteLine("Error"); //这里的时候没有输出显示
                Console.ReadKey();
            }
            int bufLen = socket.Available;
            byte[] msg = new byte[1024];
            socket.Receive(msg, 0, bufLen, SocketFlags.None); //到这里就出问题了
            string str = Encoding.ASCII.GetString(msg);
            Console.WriteLine(str);
            Console.ReadKey();
        }
    }
}大大们帮帮忙吧

解决方案 »

  1.   

    不管怎样,自己先调试,先看看客户端socket是否正确连接了服务端,然后再说别的
      

  2.   


    客户端加try之后 IPEndPoint ipep = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 6099);
     Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);            
                try
                {
                    socket.Connect(ipep);
                    byte[] msg = Encoding.ASCII.GetBytes("qwerasdf");
                    socket.Send(msg, msg.Length, SocketFlags.None);
                    socket.Close();            }
                catch (System.Exception ex)
                {
                    Console.WriteLine(ex.ToString());
                }这样运行不进入catch
    socket.Connect(ipep)之后查看属性socket.Connected = true
    但是显示
    “socket.EnableBroadcast”引发了“System.Net.Sockets.SocketException”类型的异常
    base {System.ComponentModel.Win32Exception} = {"在 getsockopt 或 setsockopt 调用中指定的一个未知的、无效的或不受支持的选项或层次。"}

    “socket.MulticastLoopback”引发了“System.Net.Sockets.SocketException”类型的异常
    base {System.ComponentModel.Win32Exception} = {"提供了一个无效的参数。"}出现了这个了啊
      

  3.   

    你的服务端没有写监听程序,流程是循环监听,当有客户端连进来会创建对应的socket,此时再写socket的receive方法进行接收。
    代码网上都有!