Chinaunix首页 | 论坛 | 博客
  • 博客访问: 501954
  • 博文数量: 704
  • 博客积分: 39800
  • 博客等级: 大将
  • 技术积分: 4950
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-15 13:32
文章分类

全部博文(704)

文章存档

2011年(1)

2008年(703)

我的朋友

分类:

2008-10-15 13:42:48

 本篇文章的主要开发环境是Visual Studio 2008,Visual Studio系列产品一直以来都提供了强大的控件功能,然而我们利用这些控件可以编写出功能强大的应用程序。本文主要利用微软的最新.net开发工具为大家展示一个发送与接收端程序的开发过程,让大家对Socket更加熟悉,很适合.net开发工具的初学者,具有一定的实用价值。 

  打开 Visual Studio 2008在文件 (File) 菜单上,单击新建项目 (New Project)。 在新建项目 (New Project) 对话框的模板 (Templates) 窗格中,单击 应用程序( Application)。单击确定 (OK) 如图1。

  

   

  我们需要创建两个窗体,一个是发送端(Form1窗体),另外一个是接收端(Form2窗体)

  详细操作步骤如下:

  选择Form1窗体,在Form1窗体中添加如下控件:

  Label1、Label2、Label3、 Button1控件、OpenFileDialog1控件

  控件属性设置如下:  

  Label1 属性Text 已经发送的文件长度:

  Label2 属性Text 为空

  Label3 属性Text 字节数

  Button1 属性Text 发送文件  

  最终界面效果如下:

选择Form2窗体,在Form2窗体中添加如下控件:

  Label1、Label2、TextBox1 、Button1控件、OpenFileDialog1控件、SaveFileDialog1控件

  控件属性设置如下:

  Label1 属性Text 已接收的文件:

  Label2 属性Text 为空

  TextBox1 属性Multiline

  属性ScrollBars True

  Both

  Button1 属性Text 接收文件并保存

  最终界面效果如下:

    好了界面工作已经完成了,接下来我们需要输入代码了

  选择Form1窗体,进入代码编辑器中

  首先我们需要进行声明:

  Imports System.Sockets

  Imports System

  Imports System.IO  

  Public Class Form1

   Inherits System.Windows.Forms.Form  

  进入Button1_Click事件中

  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

   Dim mysocket As New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)

   '声明socket

   Dim myipendponit As New IPEndPoint(IPAddress.Parse("127.0.0.1"), 8888) '建立一个终结点

   OpenFileDialog1.Filter = "文本文件(.txt) *.txt"

   OpenFileDialog1.InitialDirectory = "c:\"

   If OpenFileDialog1.ShowDialog() = DialogResult.OK Then

   Dim fs As New IO.FileStream(OpenFileDialog1.FileName, _

   IO.FileMode.OpenOrCreate, IO.FileAccess.Read) '你所要传输的文件

   Dim ssize(fs.Length - 1) As Byte

   Dim br As New BinaryReader(fs) '处理要传输的文件

   br.Read(ssize, 0, ssize.Length - 1)

  

   mysocket.Connect(myipendponit) '连接到远程计算机

   mysocket.Send(ssize) '发送文件

   Label2.Text = fs.Length()

   fs.Close()

   mysocket.Shutdown(Net.Sockets.SocketShutdown.Send)

   '关闭已发送连接

   mysocket.Close() '关闭本机socket

   End If

   End Sub  

  进入Form1_Load事件中

  Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

   Dim window2 As New Form2()

   window2.Show()

  End Sub  

  选择Form2窗体,进入代码编辑器中

[1]   

【责编:Luzi】

--------------------next---------------------

阅读(378) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~