新手刚学网络编程,想问大家一个问题。 c#网络编程 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你可以在本机打开服务端程序,配置好端口号然后客户端填写IP:127.0.0.1,和服务端的端口号,然后这两个程序就可以互相通信了如果服务端在其他电脑开启,那么IP相应的换成另一个电脑的IP 如果你确定它是客户端和服务端在同一个程序里你可以试试能不能同时开两个实例(双击exe文件两次,开2个窗口) 所有代码就是这些了,你看这个程序还能不能运行。using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Net;using System.Net.Sockets;namespace UseUDP{ public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { richTextBox1.Text = string.Empty; //实例化UdpClient对象 UdpClient udpclient = new UdpClient(Convert.ToInt32(textBox2.Text)); //调用UdpClient对象的Connect建立默认远程主机 udpclient.Connect(textBox1.Text, Convert.ToInt32(textBox2.Text)); //定义一个字节数组,用来存放发送到远程主机的信息 Byte[] sendBytes = Encoding.Default.GetBytes(textBox3.Text); //调用UdpClient对象的Send方法将Udp数据报发送到远程主机 udpclient.Send(sendBytes, sendBytes.Length); //实例化IPEndPoint对象,用来显示响应主机的标识 IPEndPoint ipendpoint = new IPEndPoint(IPAddress.Any, 0); //调用UdpClient对象的Receive方法获得从远程主机返回的Udp数据报 Byte[] receiveBytes = udpclient.Receive(ref ipendpoint); //将获得的Udp数据报转换为字符串形式 string returnData = Encoding.Default.GetString(receiveBytes); richTextBox1.Text = "接收到的信息:" + returnData.ToString(); //使用IPEndPoint对象的Address和Port属性获得响应主机的IP地址和端口号 richTextBox1.Text += "\n这条信息来自主机" + ipendpoint.Address.ToString() + "上的" + ipendpoint.Port.ToString() + "端口"; //关闭UdpClient连接 udpclient.Close(); } }} 看了一下,你这个就是按下按钮之后,发送完,马上接收也就是说,只能自己发给自己玩玩,根本没法两个程序之间通信你把IP填写成本机IP(需要插网线)或者127.0.0.1(不插网线也行),端口号随便填,比如505,不要跟本机其他程序的端口冲突就行 WPF:如何Binding到集合中的某一条目数据 decimal Equals和==的不同 excel导出的问题 winform中的checkedListBox 选中问题 定位代码,有点缺陷,就是到了最后一条记录的时候,再点击下一条就会报错,回不了开始的记录 为什么断掉链接才显示传过来得数据 wince中的winform下线程状态的判断 一个关于力图形的问题哈 C#集合类问题,帮帮偶吧 如果你曾经也是初学者,请告诉后来人你最想说的一句话 Winfrom程序如何处理中途断网的情况 百度地图API的鼠标滚轮缩放功能莫名其妙的失灵
然后客户端填写IP:127.0.0.1,和服务端的端口号,然后这两个程序就可以互相通信了
如果服务端在其他电脑开启,那么IP相应的换成另一个电脑的IP
你可以试试能不能同时开两个实例(双击exe文件两次,开2个窗口)
所有代码就是这些了,你看这个程序还能不能运行。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.Net.Sockets;namespace UseUDP
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} private void button1_Click(object sender, EventArgs e)
{
richTextBox1.Text = string.Empty;
//实例化UdpClient对象
UdpClient udpclient = new UdpClient(Convert.ToInt32(textBox2.Text));
//调用UdpClient对象的Connect建立默认远程主机
udpclient.Connect(textBox1.Text, Convert.ToInt32(textBox2.Text));
//定义一个字节数组,用来存放发送到远程主机的信息
Byte[] sendBytes = Encoding.Default.GetBytes(textBox3.Text);
//调用UdpClient对象的Send方法将Udp数据报发送到远程主机
udpclient.Send(sendBytes, sendBytes.Length);
//实例化IPEndPoint对象,用来显示响应主机的标识
IPEndPoint ipendpoint = new IPEndPoint(IPAddress.Any, 0);
//调用UdpClient对象的Receive方法获得从远程主机返回的Udp数据报
Byte[] receiveBytes = udpclient.Receive(ref ipendpoint);
//将获得的Udp数据报转换为字符串形式
string returnData = Encoding.Default.GetString(receiveBytes);
richTextBox1.Text = "接收到的信息:" + returnData.ToString();
//使用IPEndPoint对象的Address和Port属性获得响应主机的IP地址和端口号
richTextBox1.Text += "\n这条信息来自主机" + ipendpoint.Address.ToString()
+ "上的" + ipendpoint.Port.ToString() + "端口";
//关闭UdpClient连接
udpclient.Close();
}
}
}
也就是说,只能自己发给自己玩玩,根本没法两个程序之间通信
你把IP填写成本机IP(需要插网线)或者127.0.0.1(不插网线也行),端口号随便填,比如505,不要跟本机其他程序的端口冲突就行