Socket 类通信例子-第24章
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Text;
- using System.Windows.Forms;
- using System.Net;
- using System.Net.Sockets;
- namespace Test06
- {
- public partial class Form1 : Form
- {
- public Form1()
- {
- InitializeComponent();
- }
- private static Socket ConnectSocket(string server, int port)
- {
- Socket socket = null; //实例化Socket对象,并初始化为空
- IPHostEntry iphostentry = null; //实例化IPHostEntry对象,并初始化为空
- iphostentry = Dns.GetHostEntry(server); //获得主机信息
- //循环遍历得到的IP地址列表
- foreach (IPAddress address in iphostentry.AddressList)
- {
- //使用指定的IP地址和端口号实例化IPEndPoint对象
- IPEndPoint IPEPoint = new IPEndPoint(address, port);
- //使用Socket的构造函数实例化一个Socket对象,以便用来连接远程主机
- Socket newSocket = new Socket(IPEPoint.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
- newSocket.Connect(IPEPoint); //调用Connect方法连接远程主机
- if (newSocket.Connected) //判断远程连接是否连接
- {
- socket = newSocket;
- break;
- }
- else
- {
- continue;
- }
- }
- return socket;
- }
- //获取指定服务器的主页面内容
- private static string SocketSendReceive(string server, int port)
- {
- string request = "GET/HTTP/1.1\n主机:" + server + "\n连接:关闭\n";
- Byte[] btSend = Encoding.ASCII.GetBytes(request);
- Byte[] btReceived = new Byte[];
- //调用自定义方法ConnectSocket,使用指定的服务器名和端口号实例化一个Socket对象
- Socket socket = ConnectSocket(server, port);
- if (socket == null)
- return ("连接失败!");
- //将请求发送到连接的服务器
- socket.Send(btSend, btSend.Length, );
- int intContent = ;
- string strContent = server + "上的默认页面内容:\n";
- do
- {
- //从绑定的Socket接收数据
- intContent = socket.Receive(btReceived, btReceived.Length, );
- //将接收到的数据转换为字符串类型
- strContent += Encoding.ASCII.GetString(btReceived, , intContent);
- }
- while (intContent > );
- return strContent;
- }
- private void button1_Click(object sender, EventArgs e)
- {
- string server = textBox1.Text; //指定主机名
- int port = Convert.ToInt32(textBox2.Text); //指定端口号
- //调用自定义方法SocketSendReceive获取指定主机的主页面内容
- string strContent = SocketSendReceive(server, port);
- MessageBox.Show(strContent);
- }
- }
- }
Socket 类通信例子-第24章的更多相关文章
- 第24章 SPI—读写串行FLASH—零死角玩转STM32-F429系列
第24章 SPI—读写串行FLASH 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/ ...
- 慕课网_Java Socket应用---通信是这样练成的
第1章 网络基础知识 1-1 网络基础简介 (10:21) 第2章 Java 中网络相关 API 的应用 2-1 Java 中的 InetAddress 的应用 (08:10) import java ...
- Java Socket编程----通信是这样炼成的
Java最初是作为网络编程语言出现的,其对网络提供了高度的支持,使得客户端和服务器的沟通变成了现实,而在网络编程中,使用最多的就是Socket.像大家熟悉的QQ.MSN都使用了Socket相关的技术. ...
- [Real World Haskell翻译]第24章 并发和多核编程 第一部分并发编程
第24章 并发和多核编程 第一部分并发编程 当我们写这本书的时候,CPU架构正在以比过去几十年间更快的速度变化. 并发和并行的定义 并发程序需要同时执行多个不相关任务.考虑游戏服务器的例子:它通常是由 ...
- 详解 ServerSocket与Socket类
(请观看本人博文 -- <详解 网络编程>) 目录 ServerSocket与Socket ServerSocket 类: Socket类: ServerSocket与Socket 首先, ...
- 使用Socket进行通信
客户端通常可使用Socket的构造器来连接到指定服务器,Socket通常可使用如下两个构造器. Socket(lnetAddress/String remoteAddress , int port ...
- java socket线程通信
关于socket线程通信的一些知识整理 一般我们需要要让两台机子进行通信,需要创建一个Server 类,一个Client类,还需要创建一个线程类 server public class Server ...
- Socket类 以及 ServerSocket类 讲解
Socket类 套接字是网络连接的端点,套接字使应用可以从网络中读取数据,可以向网络中写入数据.不同计算机上的两个应用程序可以通过连接发送或接收字节流,以此达到相互通信的目的. 为了从一个应用程序向另 ...
- socket系列之客户端socket——Socket类
假设TCP套接字服务器端已经建立好并正在监听客户端的连接了,那么客户端就可以通过Socket类来发起连接.客户端发起一个连接请求后,就被动地在等待服务器的响应.这个类同样位于java.net包中,包含 ...
随机推荐
- 要学Java,怎么高效地学习,怎么规划
要学Java,怎么高效地学习,怎么规划? 题主是一个个例,99%的人(包括我自己)都没有题主这样的经历,也很难提出具有很强参考性的java学习建议.我倒是之前面试过一个跟题主有点类似的人,拿出来分 ...
- LoadRunner 函数之lr_xml_find
实例如: char *xml_input = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>&qu ...
- centos7 没有iptables服务 file or directory? 用secureCRT登录centos?
cenetos7 采用systemd来管理服务 centos7 没有采用传统的iptables服务, 而是采用的firewalld 服务, 以及firewall-cmd 命令; 也可以采用传统的 ip ...
- jvm
-Xms128m表示JVM Heap(堆内存)最小尺寸128MB,初始分配-Xmx512m表示JVM Heap(堆内存)最大允许的尺寸256MB,按需分配. 说明:如果-Xmx不指定或者指定偏小,应用 ...
- 移动端框架篇-控制子容器的滑屏框架-fullPage.js
控制子容器法 方法是只显示其中一个子元素,其它隐藏,滑屏时隐藏当前元素,并显示当前元素的下一个同辈元素~ 这里采用fullPage框架,库大小7.69K~ fullPage框架的页面样式无需自定义,已 ...
- [Machine Learning & Algorithm] 朴素贝叶斯算法(Naive Bayes)
生活中很多场合需要用到分类,比如新闻分类.病人分类等等. 本文介绍朴素贝叶斯分类器(Naive Bayes classifier),它是一种简单有效的常用分类算法. 一.病人分类的例子 让我从一个例子 ...
- UVA-11991 Easy Problem from Rujia Liu?
Problem E Easy Problem from Rujia Liu? Though Rujia Liu usually sets hard problems for contests (for ...
- T-SQL备忘-表连接更新
1.update a inner join b on a.id=b.id set a.name=b.name where ... 2.update table1 set a.name = b.na ...
- poj 1192
此题亦一眼看出算法,一次AC. 没什么好讲的,就是一个普通的树形动规. 用dp[n][0]表示n号顶点不取时的最大值,dp[n][1]表示n号顶点取时的最大值. dp[n][0]=max{dp[x][ ...
- BZOJ4590——[Shoi2015]自动刷题机
1.题意:题意很简洁吧,就不概括了 2.分析:我思考了半天,我猜答案满足单调...没敢写,看了题解去问Claris为啥单调,Claris一句话" 因为n越大明显不可能做更多题 ", ...