C# Socket编程

简介: using System; using System.Collections.Generic; using System.Linq; using System.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Net.Sockets;

namespace SocketTest
{
    class Program
    {
        static void Main(string[] args)
        {
            int length;
            byte[] bytes = new byte[1024];
            //创建一个Socket对象
            Socket socketSend = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
            //将本机IP地址和端口与套接字绑定,为接受做准备
            IPEndPoint myHost = new IPEndPoint(IPAddress.Any, 8000);
            socketSend.Bind(myHost);//绑定本机
            //定义远程IP地址和端口,为发送数据做准备
            IPEndPoint remote = new IPEndPoint(IPAddress.Parse("192.168.1.101"), 8000);
            EndPoint remoteHost = (EndPoint)remote;//从IPEndPoint得到EndPoint类型
            Console.Write("输入发送的信息:");
            string str = Console.ReadLine();
            bytes = System.Text.Encoding.Unicode.GetBytes(str);//字符串转换为字节数组
            //向远程中断发送信息
            socketSend.SendTo(bytes, bytes.Length, SocketFlags.None, remoteHost);
            while (true)
            {
                Console.WriteLine("等待接受...");
                //从本地绑定的IP地址和端口接受远程终端的数据,返回接受的字节数
                length = socketSend.ReceiveFrom(bytes, ref remoteHost);
                Console.WriteLine("等待接受消息:{0}", str);
                if (str=="Q") //如果接受到的是Q,则跳出循环
                {
                    break;
                }
                Console.Write("输入会送消息(Q 退出):");
                str = Console.ReadLine();//获取用户信息
                bytes = System.Text.Encoding.Unicode.GetBytes(str);//将字符串转化成字节数组
                socketSend.SendTo(bytes, bytes.Length, SocketFlags.None, remoteHost);
            }
            socketSend.Close();//关闭套接字
            Console.Write("对方已经推出了,请按回车结束");
            Console.ReadLine();
        }
       
    }
}

相关文章
|
8天前
|
安全 Java 数据处理
Python网络编程基础(Socket编程)多线程/多进程服务器编程
【4月更文挑战第11天】在网络编程中,随着客户端数量的增加,服务器的处理能力成为了一个重要的考量因素。为了处理多个客户端的并发请求,我们通常需要采用多线程或多进程的方式。在本章中,我们将探讨多线程/多进程服务器编程的概念,并通过一个多线程服务器的示例来演示其实现。
|
8天前
|
程序员 开发者 Python
Python网络编程基础(Socket编程) 错误处理和异常处理的最佳实践
【4月更文挑战第11天】在网络编程中,错误处理和异常管理不仅是为了程序的健壮性,也是为了提供清晰的用户反馈以及优雅的故障恢复。在前面的章节中,我们讨论了如何使用`try-except`语句来处理网络错误。现在,我们将深入探讨错误处理和异常处理的最佳实践。
|
13天前
|
网络协议 程序员 Python
pythonTCP客户端编程创建Socket对象
【4月更文挑战第6天】本教程介绍了TCP客户端如何创建Socket对象。Socket作为网络通信的基础单元,包含协议、IP地址和端口等信息。在TCP/IP中,Socket分为流式(TCP)、数据报(UDP)和原始套接字。以Python为例,创建TCP Socket对象需调用`socket.socket(AF_INET, SOCK_STREAM)`。为确保健壮性,应使用异常处理处理可能的`socket.error`。学习本教程将帮助你掌握TCP客户端创建Socket对象的技能。
|
1月前
|
数据处理 C# C++
如何使用C#和C++结构体实现Socket通信
如何使用C#和C++结构体实现Socket通信
|
1月前
|
网络协议 安全 API
计算机网络之Socket编程
计算机网络之Socket编程
|
2月前
|
网络协议 安全 开发者
Python 中的 Socket 编程
Python 中的 Socket 编程
44 4
|
3月前
socket编程之回声服务器函数的陷阱
由connect函数使用不当导致的小错误 话不多说先看代码:
25 0
|
3月前
|
C语言
socket编程之回声服务器
回声服务器的实现 结合我们之前对socket函数的分析,现在做一个最简单的回声服务器(由客户端输入一串字符,再由服务器端转换成大写字符回显给客户端)
26 0
|
3月前
|
API C++
socket编程之常用api介绍与socket、select、poll、epoll高并发服务器模型代码实现(1)
前言   本文旨在学习socket网络编程这一块的内容,epoll是重中之重,后续文章写reactor模型是建立在epoll之上的。
34 0
|
3月前
|
监控 安全 Linux
socket编程之常用api介绍与socket、select、poll、epoll高并发服务器模型代码实现(3)
高并发服务器模型-poll poll介绍   poll跟select类似, 监控多路IO, 但poll不能跨平台。其实poll就是把select三个文件描述符集合变成一个集合了。
35 0