delphi怎样用socket发送,接受record类型的数据
网络应用分为客户端和服务端两部分,而Socket类是负责处理客户端通信的Java类。通过这个类可以连接到指定IP或域名的服务器上,并且可以和服务器互相发送和接受数据。在本文及后面的数篇文章中将详细讨论Socket类的使用,内容包括Socket类基础、各式各样的连接方式、get和set方法、连接过程中的超时以及关闭网络连接等。 在本文中,我们将讨论使用Socket类的基本步骤和方法。一般网络客户端程序在连接服务程序时要进行以下三步操作。1.连接服务器2.发送和接收数据3.关闭网络连接一、连接服务器在客户端可以通过两种方式来连接服务器,一种是通过IP的方式来连接服务器,而另外一种是通过域名方式来连接服务器。其实这两种方式从本质上来看是一种方式。在底层客户端都是通过IP来连接服务器的,但这两种方式有一定的差异,如果通过IP方式来连接服务端程序,客户端只简单地根据IP进行连接,如果通过域名来连接服务器,客户端必须通过DNS将域名解析成IP,然后再根据这个IP来进行连接。在很多程序设计语言或开发工具中(如C/C++、Delphi)使用域名方式连接服务器时必须自己先将域名解析成IP,然后再通过IP进行连接,而在Java中已经将域名解析功能包含在了Socket类中,因此,我们只需象使用IP一样使用域名即可。通过Socket类连接服务器程序最常用的方法就是通过Socket类的构造函数将IP或域名以及端口号作为参数传入Socket类中。Socket类的构造函数有很多重载形式,在这一节只讨论其中最常用的一种形式:public Socket(String host, int port)。从这个构造函数的定义来看,只需要将IP或域名以及端口号直接传入构造函数即可。下面的代码是一个连接服务端程序的例子程序:package mysocket;import java.net.*;public class MyConnection{public static void main(String[] args){try{if (args.length > 0){Socket socket = new Socket(args[0], 80);System.out.println(args[0] + "已连接成功!");}elseSystem.out.println("请指定IP或域名!");}catch (Exception e){System.err.println("错误信息:" + e.getMessage());}}}在上面的中,通过命令行参数将IP或域名传入程序,然后通过Socket socket = new Socket(args[0], 80)连接通过命令行参数所指定的IP或域名的80端口。由于Socket类的构造函数在定义时使用了throws,因此,在调用Socket类的构造函数时,必须使用try…catch语句来捕捉错误,或者对main函数使用throws语句来抛出错误。测试正确的IPjava mysocket.MyConnection 127.0.0.1输出结果:127.0.0.1已经连接成功!测试错误的IPjava mysocket.MyConnection 10.10.10.10输出结果:错误信息:Connection timed out: connect注:10.10.10.10是一个并不存在的IP,如果这个IP在你的网络中存在,请使用其它的不存在的IP。测试正确的域名java mysocket.MyConnectionwww.ptpress.com.cn输出结果:www.ptpress.com.cn已经连接成功!测试错误的域名java mysocket.MyConnectionwww.ptpress1.com.cn输出结果:错误信息:www.ptpress1.com.cn 使用Socket类连接服务器可以判断一台主机有哪些端口被打开。下面的代码是一个扫描本机有哪些端口被打开的程序。

VB 如何用:socket 发送数据
1、首先看控件区有无串口控件,表明串口控件并未被启用,选择工程→部件→Micosoft comm Control6.0选项,点击应用,即可添加串口控件。2、绘制两个text控件用于存储串口需要收发的数据。一个button控件用于发送指令,添加串口控件。3、编写程序: Private Sub Command1_Click() MSComm1.Output = Text2.Text ‘发送数据End Sub Private Sub Form_Load()。4、串口数据的收发都正常。
在VB6中利用Winsock实现数据的发送和接收。下面的代码实现了两个程序:发送端程序和接收端程序,这两个程序实现以下功能:Socket通信采用UDP协议发送端程序向接收端程序发送字符串数据接收端接收到数据后在窗口显示数据一、接收端程序(1)新建一个VB6工程(2)添加Winsock控件。工具箱单击鼠标右键调出菜单:部件-->控件-->Winsock(3)在Form1上布置一个TextBox和一个Winsock控件(4)Form1窗体代码Option ExplicitPrivate Sub Form_Load() '初始化Socket With Winsock1 '采用UDP协议 .Protocol =sckUDPProtocol '本机端口 .LocalPort = 8000 '打开Socket .Bind End With Text1.Text = "" Me.Caption = "UDP接收端程序"End SubPrivate Sub Form_Unload(Cancel As Integer) '关闭窗口时先关闭socket Winsock1.CloseEnd SubPrivate Sub Winsock1_DataArrival(ByVal bytesTotal As Long) '接收数据 Dim strData As String Winsock1.GetData strData, vbString '将接收的显示在textBox1 Text1.Text = Text1.Text + strData + vbCrLfEnd Sub二、发送端程序(1)新建一个VB6工程(2)添加Winsock控件(3)在Form1上布置一个TextBox,一个Winsock和一个Command(4)Form1窗体代码Option ExplicitPrivate Sub Command1_Click() '发送 Winsock1.SendData Text1.TextEnd SubPrivate Sub Form_Load() With Winsock1 ' 采用UDP协议 .Protocol = sckUDPProtocol '192.168.216.128是接收端程序所在计算机的IP地址 .RemoteHost = "192.168.216.128" '接收端程序所使用的端口 .RemotePort = 8000 '打开Socket .Bind End With Text1.Text = "" Command1.Caption = "发送" Me.Caption = "UDP发送端程序"End SubPrivate Sub Form_Unload(Cancel As Integer) '窗口关闭时,先关闭Winsock1 Winsock1.CloseEnd Sub三、运行结果启动UDP接收端程序启动UDP发送端程序发送数据接收数据
用VB5 Winsock控件创建TCP/IP通讯程序 随着Windows 95中文版和Windows NT Server 4.0中文版的流行, Microsoft公司推出了相应平台上的开发软件: Visual Basic 5.0 中文企业 版。它为Windows环境下的网络开发提供了强大的工具,Winsock控件就是其中之一。Winsock控件建立在TCP、UDP协议的基础上,完成与远程计算机的通信。即使对TCP/IP不太熟悉的用户,使用该控件也可以在十几分钟内创建一个简单的客户机/服务器程序。下面我们对Winsock控件的事件、方法、属性按其在程序中出现的顺序分别作详细的介绍,以便更好地理解程序源代码。服务器程序的实现过程是:(1)服务器程序必须设置好LocalPort属性,作为侦听端口,该值为一个整数(只要是一个其它TCP/IP应用程序没有使用过的值即可)。(2)使用Listen方法进入侦听状态,等待客户机程序的连接请求。(3)客户机程序发出连接请求,使服务器程序产生ConnectionRequest事件,该事件得到一个参数requestID。(4)服务器程序用Accept方法接受客户机程序的requestID请求。这样,服务器程序就可以用SendData方法发送数据了。Accept方法必须用上一步得到的requestID作为其参数。(5)当服务器程序接收到数据时,产生DataArrival事件,参数BytesTotal包含接收到的数据字节数。在该事件中,可以用GetData方法接收数据。(6)如果接受到Close事件,则用Close方法关闭TCP/IP连接。客户机程序的实现过程是:(1) 客户程序设置Remotehost属性,以便指定运行服务器程序的主机 名,该字符串可在“控制面板|网络|标识|计算机名”中查到。(2) 设置RemotePort属性,以便指定服务器程序的侦听端口。(3)使用Connect方法,向服务器提出连接请求。(4)服务器接受客户机程序的请求,客户机程序产生Connect事件,就可以用SendData方法发送数据了。(5)当客户机程序接收到数据时,产生DataArrival事件,参数BytesTotal包含接收到的数据字节数。在该事件中,可以用GetData方法接收数据。(6)如果接受到Close事件,则用Close方法关闭连接。Winsock控件还有两个重要的属性,即Protocol和State。Protocol设定使用的协议是TCP还是UDP:取值sckTCPProtocol表示TCP, 取值sckUDPProtocol则表示UDP。因为Winsock控件的缺省设置是sckTCPProtocol,所以程序中并没有使用Protocol属性。State属性反映的是当前TCP/IP的连接状态,取值如表1所示。表1 Winsock控件的State属性及其描述常数值 描述sckClosed0 缺省值,关闭。SckOpen 1打开。SckListening 2 侦听sckConnectionPending 3 连接挂起sckResolvingHost 4 识别主机。sckHostResolved 5 已识别主机sckConnecting 6 正在连接。sckConnected 7 已连接。sckClosing 8 同级人员正在关闭连接。sckError9 错误。先在一台计算机上运行服务器程序,此时窗口上只有一个“退出”按钮。 再在另一台计算机上运行客户机程序,在“连接”按钮右边的文本框中输入服务器 的主机名后单击“连接”按钮。如果连接成功,则服务器和客户机程序窗口都会出现两个文本框。这时,两端都可以在上面的文本框中输入文字,这些文字会立即在下面的文本框中出现。服务器程序使用的控件如下:(1)Command1:退出按钮;(2)textsend:发送数据文本框;(3)Winsockserver: 服务器Winsock;(4)textget :接收数据文本框。服务器程序的界面如图所示。服务器程序的源代码如下:Private Sub Command1_Click()EndEnd SubPrivate Sub Form_Load()textsend.Visible = Falsetextget.Visible = FalseWinsockserver.LocalPort = 1001Winsockserver.ListenEnd SubPrivate Sub textsend_Change()Winsockserver.SendData textsend.TextEnd SubPrivate Sub Winsockserver_Close()Winsockserver.CloseEndEnd SubPrivate Sub Winsockserver_ConnectionRequest(ByVal requestID As Long)textsend.Visible = Truetextget.Visible = TrueIf Winsockserver.State <> sckClosed Then Winsockserver.CloseWinsockserver.Accept requestIDEnd SubPrivate Sub Winsockserver_DataArrival(ByVal bytesTotal As Long)Dim tmpstr As StringWinsockserver.GetData tmpstrtextget.Text = tmpstrEnd Sub客户机程序使用的控件如下:(1)Command1:退出按钮;(2)Command2:连接按钮;(3)Winsockclient:客户Winsock;(4)Text1:主机名文本框;(5)Textsend:发送数据文本框;(6)Textget:接收数据文本框; 客户机程序的界面如图所示。客户机程序的源代码如下:Private Sub Command1_Click()EndEnd SubPrivate Sub Command2_Click()Winsockclient.ConnectEnd SubPrivate Sub Form_Load()textsend.Visible = Falsetextget.Visible = FalseWinsockclient.RemotePort = 1001Winsockclient.RemoteHost = "sccdsz"End SubPrivate Sub Text1_Change()Winsockclient.RemoteHost = Text1.TextEnd SubPrivate Sub textsend_Change()Winsockclient.SendData textsend.TextEnd SubPrivate Sub Winsockclient_Close()Winsockclient.CloseEndEnd SubPrivate Sub winsockclient_Connect()textsend.Visible = Truetextget.Visible = TrueCommand2.Visible = FalseEnd SubPrivate Sub winsockclient_DataArrival(ByVal bytesTotal As Long)Dim tmpstr As StringWinsockclient.GetData tmpstrtextget.Text = tmpstr End Sub

socket的功能curl能做吗
socket 是一个网络编程接口,curl只是一个工具,你可以用SOCKET写一个类似的工具! 利用socket接口你可以建立基于TCP/IP的网络通信方式,在局域网中甚至还可以用它来发送MAC广播包之类的,总而言之目前绝大多数需要联网通信的软件都用到他,浏览器,QQ,MSN..... 当然也包括curl.

socket发送 arrayList类型数据
需要自定义消息格式,告诉client怎么样把这个消息解析成数组 但是也有捷径, 比如你可以把这个Arraylist直接封装成一个XML文本,或者JSON文本。发到客户端,然后客户端再将XML反解成ArrayList对象即可。如果你对XML编程不熟,最简单的,就是上网搜XML第三方开源工具,引入到你的工程中, 直接用此工具,将对象转XML文本,客户端也一样用此工具将XML文本转对象。 搞定。

我用TCP的socket做了聊天工具(类似QQ),请教用户之间传文件用什么做
建tcp协议的socket,用内存映射技术,把大文件分割成块,发送到对方,对方组合成原文件。做得好的话,传输速度可以达到物理网卡的极限。源代码你可以参考飞鸽传书,不过它那个有点复杂,也没有使用内存映射。
和Socket 传输 点对点

本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/44201.html。