SYSTEM.NET.SOCKET命名空间之SOCKET类。。。

 1 using System;
 2 using System.Collections.Generic;
 3 using System.ComponentModel;
 4 using System.Data;
 5 using System.Drawing;
 6 using System.Linq;
 7 using System.Text;
 8 using System.Threading.Tasks;
 9 using System.Windows.Forms;
10 using System.Net.Sockets;
11 using System.Net;
12
13 namespace WindowsFormsApplication5
14 {
15     public partial class Form1 : Form
16     {
17         public Form1()
18         {
19             InitializeComponent();
20         }
21         private static Socket ConnectSocket(string server, int port)
22         {
23             Socket socket = null;
24             IPHostEntry iphostentry = null;
25             iphostentry = Dns.GetHostEntry(server);
26             foreach(IPAddress address in iphostentry.AddressList)
27             {
28                 IPEndPoint IPEPoint = new IPEndPoint(address,port);
29                 Socket newSocket = new Socket(IPEPoint.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
30                 newSocket.Connect(IPEPoint);
31                 if(newSocket.Connected)
32                 {
33                     socket = newSocket;
34                     break;
35                 }
36                 else
37                 {
38                     continue;
39                 }
40             }
41             return socket;
42         }
43
44         private static string SocketSendReveive(string server, int port)
45         {
46             string request = "GET/HTTP/1.1\n Host: " + server + "\n connetc: close\n";
47             Byte[] btSend = Encoding.ASCII.GetBytes(request);
48             Byte[] btReceived = new Byte[256];
49             Socket socket = ConnectSocket(server,port);
50             if(socket == null)
51                 return ("connect failed.");
52             socket.Send(btSend,btSend.Length,0);
53             int intContent = 0;
54             string strContent = server + " 's content :\n";
55             do
56             {
57                 intContent = socket.Receive(btReceived, btReceived.Length, 0);
58                 strContent += Encoding.ASCII.GetString(btReceived,0,intContent);
59             }
60             while(intContent > 0);
61             return strContent;
62         }
63
64
65
66         private void button1_Click(object sender, EventArgs e)
67         {
68             string server = textBox1.Text;
69             int port = Convert.ToInt32(textBox2.Text);
70             string strContent = SocketSendReveive(server, port);
71             MessageBox.Show(strContent);
72
73         }
74     }
75 }

时间: 2024-10-28 00:15:42

SYSTEM.NET.SOCKET命名空间之SOCKET类。。。的相关文章

请问如何自己编写发送邮件类,主要是附件是字节数组类型存储的,不用SYSTEM.NET.MAIL命名空间下的类???

问题描述 公司要做一个email组件的东西,要求不要对磁盘进行操作所以用MailMessage那个类的附件属性不知道怎么发送?而且附件是以字节数组存在数据库中的,发送附件时不能指定路径文件名.请大家帮帮忙! 解决方案 解决方案二:这个我也想知道.解决方案三:EDM?

System.Web.Mvc 命名空间

System.Web.Mvc 命名空间包含一些类和接口,它们支持用于创建 Web 应用程序的 ASP.NET 模型视图控制器 (MVC) 框架.该命名空间包含表示控制器.控制器工厂.操作结果.视图.分部视图以及模型联编程序等的类. 类     类 说明 AcceptVerbsAttribute 表示一个特性,该特性指定操作方法将响应的 HTTP 谓词. ActionDescriptor 提供有关操作方法的信息,如操作方法的名称.控制器.参数.特性和筛选器. ActionExecutedConte

艾伟_转载:Socket开发探秘--基类及公共类的定义

Socket开发是属于通信底层的开发,.NET也提供了非常丰富的类来实现Socket的开发工作,本篇不是介绍这些基础类的操作,而是从一个大的架构方面阐述Socket的快速开发工作,本篇以TCP模式进行程序的开发介绍,以期达到抛砖引玉的目的. 要掌握或者了解Socket开发,必须了解下面所述的场景及知识. 1.TCP客户端,连接服务器端,进行数据通信 2.TCP服务器端,负责侦听客户端连接 3.连接客户端的管理,如登陆,注销等,使用独立线程处理 4.数据接收管理,负责数据的接受,并处理队列的分发,

socket c# c++-SOCKET 通讯c#对应 c++ 中的类型

问题描述 SOCKET 通讯c#对应 c++ 中的类型 int_stdcall ConnectNetPort(SOCKET *lpSocket,//传入已分配套接字的指针 SOCKADDR_IN *pPrinterAddr, //打印机的地址 timeval*lpTimeout); //超时 这是c++封装的dll 方法 实现SOCKET服务的 这几个参数类型 对应C# 中的那几个类型 在c#中引用后 传参 怎么写 真心 不懂这个 跪求答案 解决方案 C#有自己的socket库,只要通讯本身的协

socket 等待连接-socket 一直处于等待连接中,实际客户端有请求连接

问题描述 socket 一直处于等待连接中,实际客户端有请求连接 1.服务器端代码 Socket listener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); listener.Bind(new IPEndPoint(IPAddress.Any, 5001)); // listener.Listen(100); while (true) //死循环 { string receiver

socket客户端-php socket 客户端的多次通信

问题描述 php socket 客户端的多次通信 想用php做一个socket 客户端,可以实现一次连接,然后多次给服务端发消息.具体的想法是这样的: 做一个页面,这个页面上有个按钮和消息栏,点一下按钮就可以把消息栏的内容发送给服务端,再点一下再发送,而不需要重新连接,只是页面打开时跟服务端连接上. 这个要怎么实现呀?请各位大牛帮帮忙,小妹先谢过了. 附上socket类的代码. <?php /** 定义ip,和端口 */ define ( 'PHP_SOCKET_PORT', '6000' );

1.socket编程:socket编程,网络字节序,函数介绍,IP地址转换函数,sockaddr数据结构,网络套接字函数,socket相关函数,TCP server和client

 1  Socket编程 socket这个词可以表示很多概念: 在TCP/IP协议中,"IP地址+TCP或UDP端口号"唯一标识网络通讯中的一个进程,"IP 地址+端口号"就称为socket. 在TCP协议中,建立连接的两个进程各自有一个socket来标识,那么这两个socket组成的socket pair就唯一标识一个连接.socket本身有"插座"的意思,因此用来描述网络连 接的一对一关系. TCP/IP协议最早在BSD UNIX上实现,

socket-安卓 Socket通信,Socket连接不上,程序就在真机崩溃但在模拟器上正常

问题描述 安卓 Socket通信,Socket连接不上,程序就在真机崩溃但在模拟器上正常 class ReceiveData extends Thread { int i=1; private void reconnect( ) { Log.i("第"+i+"次连接","reconnect刚开始执行"); try { Log.i("第"+i+"次连接","Socket之前"); Sock

msdos-socket-MSDOS下socket编程客户端 socket()函数的errno=123

问题描述 MSDOS下socket编程客户端 socket()函数的errno=123 我在MSDOS下编写了一个socket程序,运行于MSDOS71下是可以对一个服务端仿真建立连接的. 然后将程序放在win98下的msdos运行,在socket()获取套接字时errno返回123,但是我在win98下telnet或ping这个服务端仿真都是可以通的. 是否是因为,我win98下的msdos没有安装network client的原因?这个errno=123具体原因是什么? 解决方案 VC++中