udp简单客户端和服务端的通信代码

《客户端》

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

namespace _023_socket_udp_客户端
{
class Program
{
static void Main(string[] args)
{
//1.创建socket
Socket udpClient = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
//2.发送数据
EndPoint serverPoint = new IPEndPoint(IPAddress.Parse("14.197.42.119"), 7788); //4.这是为了创建一个终结点里面包含了ip地址和端口号
string message = Console.ReadLine(); //2.这个是获取用户输入了什么数据类型是字符串
byte[] data = Encoding.UTF8.GetBytes(message); //3.这个是将用户输入的字符串转化成byte类型的数组然后带入到第一步中的参数中去发送给服务端
int length = udpClient.SendTo(data,serverPoint); //1.启动发送数据的函数,但是得传入一个用户输入的数据类型是byte的参数,然后传入的第二个参数是用来指定一个IP地址和端口号我们称之为终结点
Console.ReadKey();
}
}
}

《服务端》

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

namespace _023_socket_udp_服务端
{
class Program
{
static void Main(string[] args)
{
//1.创建Socket
Socket udpServer = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
//2.绑定IP地址和端口号
udpServer.Bind(new IPEndPoint(IPAddress.Parse("14.197.42.119"),7788));
//3.接受数据
EndPoint remoteEndPoint = new IPEndPoint(IPAddress.Any,0); //3.创建一个不需要指定的IP和端口号传递到第一步的第二个参数,这个参数不需要赋值等到接受信息的时候才会给它赋值
byte[] data = new byte[1024]; //2.创建一个容器给第一步中第一个数据参数使用
int length = udpServer.ReceiveFrom(data, ref remoteEndPoint); //1.传入一个byte类型的数组作为容器来储存接收到的信息和一个不需要指定的IP和端口号的信息 ref关键字表示这个方法可以对ref后面的属性修改信息
//4.显示出来数据
string message = Encoding.UTF8.GetString(data, 0, length); //1.将接收到的byte类型的数组信息data转化为string类型的信息存储在message对象中
Console.WriteLine("从IP{0}和端口号{1}中收到了信息", (remoteEndPoint as IPEndPoint).Address.ToString(), (remoteEndPoint as IPEndPoint).Port); //2.输出信息来源 标注:因为remoteEndPoint是需要转换类型的所以记得加括号
udpServer.Close(); //3.接受完数据和显示完数据以后我们需要自动清除数据释放内存
Console.ReadKey();
}
}
}

时间: 2024-11-16 18:17:26

udp简单客户端和服务端的通信代码的相关文章

linux网络编程之用socket实现简单客户端和服务端的通信(基于UDP)

单客户端和服务端的通信(基于UDP)   代码 服务端代码socket3.c #include<sys/types.h> #include<sys/socket.h> #include<netinet/in.h> #include<arpa/inet.h> #include<unistd.h> #include<stdlib.h> #include<stdio.h> #include<string.h> #in

用PHP的socket实现客户端到服务端的通信

服务端 <?php error_reporting(E_ALL); set_time_limit(0); ob_implicit_flush(); //本地IP $address = 'localhost'; //设置用111端口进行通信 $port = 111; //创建SOCKET if (($sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) < 0) { echo "socket创建失败原因 " . socket

python实现一个客户端与服务端的通信

函数介绍 Socket对象方法: 服务端: 函数 描述 .bind() 绑定地址关键字,AF_INET下以元组的形式表示地址.常用bind((host,port)) .listen() 监听TCP,可以挂起的最大连接数,该值至少为1,一般设为5即可 .accept() 被动接受TCP客户端的连接 客户端: 函数 描述 .connect() 初始化服务器连接 .connect_ex() 是对connect()函数的扩展,当出错时返回出错码,不报异常 其它函数: 函数 描述 .recv() 接收数据

Netty入门之客户端与服务端通信(二)

Netty入门之客户端与服务端通信(二) 一.简介 在上一篇博文中笔者写了关于Netty入门级的Hello World程序.书接上回,本博文是关于客户端与服务端的通信,感觉也没什么好说的了,直接上代码吧. 二.客户端与服务端的通信 2.1 服务端启动程序 public class MyServer { public static void main(String[] args) throws InterruptedException { EventLoopGroup bossGroup = ne

Socket通信客户端和服务端代码

这两天研究了下Socket通信,简单实现的客户端和服务端代码 先上winfrom图片,客户端和服务端一样 服务端代码: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; usin

[Java]命令行模拟TCP客户端与服务端的简单小程序遇到的问题(基础不牢!扎实和亲手实践比什么都重要!)

简单得不能再简单的需求: 简单模拟TCP客户端与服务端的一次连接和通信,客户端发出一个消息,服务端回馈一个消息 自己第一次编写的代码: Client: class TcpClient1 { public static void main(String[] args) throws Exception { Socket s=new Socket("127.0.0.1",10010); OutputStream out=s.getOutputStream(); out.write(&quo

使用多线程实现多个客户端与服务端通信1

Server.java package socket; import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.net.InetAddress;import java.net.ServerSocket;import java.net.Socket; /** * 聊天室服务端 * @author 小

Python socket编程客户端与服务端通信

目标:实现客户端与服务端的socket通信,消息传输. 客户端 客户端代码: from socket import socket,AF_INET,SOCK_STREAM #服务端的ip地址 server_ip = '127.0.0.1' #服务端socket绑定的端口号 server_port = 20000 if __name__ == '__main__': while True: str_msg = input("请输入要发送信息:") if str_msg != "&

asp.net 简单记录请求的客户端和服务端 处理时间

最近项目需要简单记录一下 ajax客户端和服务端处理时间,服务端时间的思路是借用BeginRequest和EndRequest事件,为了不影响现有接口返回的数据格式,因此服务处理时间放在response 的header里面. BeginRequest += (sender, args) => { HttpContext.Current.Items["ServerStartTime"] = DateTime.Now.Ticks.ToString(); }; EndRequest +