C#中如何实现指定端口向指定端口发送数据

glassfish6 2008-01-05 02:54:29
需求是这样的,客户那边有一个server,服务端口为17778,现在我需要通过17776向服务器的17778端口发送数据,请问在C#中如何实现,我现在实现往17778端口发送数据,但是我这边不能够指定固定到17776端口发送,谢谢!
请给出相应代码,谢谢!
...全文
871 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
裸奔的蜗牛 2011-04-27
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 mrhan2008 的回复:]
可以的 我给你发完整的代码
看下面的

C# code

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;

using System.Data;
using System.Threadin……
[/Quote]

忽悠人 ri
glassfish6 2008-01-05
  • 打赏
  • 举报
回复
请问用socket能够实现这样的功能么?
mrhan2008 2008-01-05
  • 打赏
  • 举报
回复
可以的 我给你发完整的代码
看下面的

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Threading;
using System.Net.Sockets;
using System.IO;
namespace Network
{
/// <summary>
/// Form1 的摘要说明。
/// </summary>
public class Form1 : System.Windows.Forms.Form
{
//这里窗口设计区域省略
private void StartListen()
{
MyTcpListener=new TcpListener(888);
//开始监听
MyTcpListener.Start();
while(true)
{//获取TcpClient
TcpClient MyTcpClient=MyTcpListener.AcceptTcpClient();
NetworkStream MyStream=MyTcpClient.GetStream();
byte[] MyBytes = new byte[1024];
int MyBytesRead=MyStream.Read(MyBytes,0,MyBytes.Length);
string MyMessage=System.Text.Encoding.Default.GetString(MyBytes,0,MyBytesRead);
this.richTextBox2.Text+=MyMessage;
}
}
private void button1_Click(object sender, System.EventArgs e)
{//发送聊天内容
if(this.textBox1.Text.Length<1||this.textBox2.Text.Length<1||this.richTextBox1.Text.Length<1)
return;
try
{
string MyMessage= this.textBox2.Text+":"+this.richTextBox1.Text+"\n";
//根据目标计算机地址建立连接
TcpClient MyTcpClient = new TcpClient(this.textBox1.Text, 888);
//获得用于网络访问的数据流
NetworkStream MyTcpStream =MyTcpClient.GetStream();
StreamWriter MyStream = new StreamWriter(MyTcpStream);
//将字符串写入流
MyStream.Write(MyMessage);
//将缓冲数据写入基础流
MyStream.Flush();
//关闭网络流
MyStream.Close();
MyTcpClient.Close();
this.richTextBox3.AppendText(this.richTextBox1.Text+"\n");
this.richTextBox1.Clear();
}
catch(Exception Err)
{
MessageBox.Show(Err.Message,"信息提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
}
}
private void Form1_Load(object sender, System.EventArgs e)
{//开始监听
//创建监听线程
this.MyListenThread= new Thread(new ThreadStart(StartListen));
//启动线程
this.MyListenThread.Start();
}

private void Form1_Closed(object sender, System.EventArgs e)
{//关闭SOCKET
try
{
if (this.MyTcpListener!=null)
{//关闭监听器
this.MyTcpListener.Stop();
}
if (this.MyListenThread!=null)
{ //如果线程还处于运行状态就关闭它
if (this.MyListenThread.ThreadState==ThreadState.Running)
{
this.MyListenThread.Abort();
}
}
}
catch(Exception Err)
{
MessageBox.Show(Err.Message,"信息提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
}
}
}
}

glassfish6 2008-01-05
  • 打赏
  • 举报
回复
我现在使用的是socket,刚才我没有说明白,因为在实现往服务器发送数据的同时,这个程序本身也是一个服务器,它同时接收从另一个socket发送过来的数据,然后将发送过来的数据进行一些处理,然后在发送到刚才提到过的服务端去,因为初次设计到socket编程,很多不明白,还请尽量详细点,谢谢
to mrhan2008
上面的代码能够实现指定发送端口么?
谢谢
mrhan2008 2008-01-05
  • 打赏
  • 举报
回复

string MyMessage= this.textBox2.Text+":"+this.richTextBox1.Text+"\n";
//根据目标计算机地址建立连接
TcpClient MyTcpClient = new TcpClient(this.textBox1.Text, 888);
//获得用于网络访问的数据流
NetworkStream MyTcpStream =MyTcpClient.GetStream();
StreamWriter MyStream = new StreamWriter(MyTcpStream);
//将字符串写入流
MyStream.Write(MyMessage);
//将缓冲数据写入基础流
MyStream.Flush();
//关闭网络流
MyStream.Close();
MyTcpClient.Close();
this.richTextBox3.AppendText(this.richTextBox1.Text+"\n");
this.richTextBox1.Clear();
mrhan2008 2008-01-05
  • 打赏
  • 举报
回复
使用TcpClient 来根据端口进行连接

110,532

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧