学习socket必看的发送接收经典案例.doc_第1页
学习socket必看的发送接收经典案例.doc_第2页
学习socket必看的发送接收经典案例.doc_第3页
学习socket必看的发送接收经典案例.doc_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Socket经典的接受-发送文件案例1, 说明本文基于VS2005开发平台,VC+语言,控制台console程序。经本机测试,能够通过。2, socket说明:其实就是微软的API。里面有很多函数供大家使用。其实大家很多时候都比较模糊,API是什么东东。我在这里,向大家简单说下我的理解,很简单就是程序员做了很多类,类里面有很多方法,俗称组件。放在服务器上,然后开发出一个接口,供大家使用。大家可以基于这个接口,开发很多程序。就这么简单,呵呵,可能我表述的不是很准确,还请大家多多包涵。不用多说,直接上案例。3, socket发送的目的地址方式为:IP+port方式。如1:224, 本案例有两个文件,一个是客户端程序(client.cs);一个是服务器端程序(server.cs)。客户端程序代码 using System;using System.Net;using System.Net.Sockets;using System.Text;namespace tcpclient / / Class1 的摘要说明。 / class client / / 应用程序的主入口点。 / STAThread static void Main(string args) / / TODO: 在此处添加代码以启动应用程序 / byte data = new byte1024; Socket newclient = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); Console.Write( please input the server ip: ); string ipadd = Console.ReadLine(); Console.WriteLine(); Console.Write( please input the server port: ); int port = Convert.ToInt32(Console.ReadLine(); IPEndPoint ie = new IPEndPoint(IPAddress.Parse(ipadd), port); / 服务器的IP和端口 try / 因为客户端只是用来向特定的服务器发送信息,所以不需要绑定本机的IP和端口。不需要监听。 newclient.Connect(ie); catch (SocketException e) Console.WriteLine( unable to connect to server ); Console.WriteLine(e.ToString(); return; int recv = newclient.Receive(data); string stringdata = Encoding.ASCII.GetString(data, 0, recv); Console.WriteLine(stringdata); while (true) string input = Console.ReadLine(); if (input = exit ) break; newclient.Send(Encoding.ASCII.GetBytes(input); data = new byte1024; recv = newclient.Receive(data); stringdata = Encoding.ASCII.GetString(data, 0, recv); Console.WriteLine(stringdata); Console.WriteLine( disconnect from sercer ); newclient.Shutdown(SocketShutdown.Both); newclient.Close(); 服务器端程序using System;using System.Collections.Generic;using System.Text;using System.Net;using System.Net.Sockets;namespace SOCKET class Program static void Main(string args) int recv; byte data = new byte1024; IPEndPoint ipep = new IPEndPoint(IPAddress.Any, 9050); Socket newsock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); newsock.Bind(ipep); newsock.Listen(10); Console.WriteLine(waiting for a client); Socket client = newsock.Accept(); IPEndPoint clientip = (IPEndPoint)client.RemoteEndPoint; Console.WriteLine(connect with client: + clientip.Address+at port+clientip.Port); string welcome = welcome here!; data = Encoding.ASCII.GetBytes(welcome); client.Send(data, data.Length, SocketFlags.None); while (true) data = new byte1024; recv = client.Receive(data); Console.WriteLine(recv= + recv); if (recv = 0) break; Console.WriteLine(Encoding.ASCII.GetString(data, 0, recv); client.Send(data,recv,SocketFlags.None); Console.WriteLine(Disconnected from+clientip.Address); client.Close(); n

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论