c#(Socket)同步套接字代码示例

同步客户端套接字示例

下面的示例程序创建一个连接到服务器的客户端。该客户端是用同步套接字生成的,因此挂起客户端应用程序的执行,直到服务器返回响应为止。该应用程序将字符串发送到服务器,然后在控制台显示该服务器返回的字符串。

C#

using system;
using system.Net;
using system.Net.Sockets;
using system.Text;
public class SynchronousSocketClient {
public static void StartClient() {
// Data buffer for incoming data.
byte[] bytes = new byte[1024];
// Connect to a remote device.
try {
// Establish the remote endpoint for the socket.
// This example uses port 11000 on the local computer.
IPHostEntry ipHostInfo = Dns.Resolve(Dns.GetHostName())
IPAddress ipAddress = ipHostInfo.AddressList[0];
IPEndPoint remoteEP = new IPEndPoint(ipAddress,11000);
// Create a tcp/IP socket.
Socket sender = new Socket(AddressFamily.InterNetwork,
SocketType.Stream, ProtocolType.Tcp );
// Connect the socket to the remote endpoint. Catch any errors.
try {
sender.Connect(remoteEP);
Console.WriteLine("Socket connected to {0}",
sender.RemoteEndPoint.ToString());
// Encode the data string into a byte array.
byte[] msg = Encoding.ASCII.GetBytes("This is a test<EOF>");
// Send the data through the socket.
int bytesSent = sender.Send(msg);
// Receive the response from the remote device.
int bytesRec = sender.Receive(bytes);
Console.WriteLine("Echoed test = {0}",
Encoding.ASCII.GetString(bytes,0,bytesRec));
// Release the socket.
sender.Shutdown(SocketShutdown.Both);
sender.Close();
} catch (ArgumentNullException ane) {
Console.WriteLine("ArgumentNullException : {0}",ane.ToString());
} catch (SocketException se) {
Console.WriteLine("SocketException : {0}",se.ToString());
} catch (Exception e) {
Console.WriteLine("Unexpected exception : {0}", e.ToString());
}
} catch (Exception e) {
Console.WriteLine( e.ToString());
}
}
public static int Main(String[] args) {
StartClient();
return 0;
}
}

时间: 2024-09-08 17:01:30

c#(Socket)同步套接字代码示例的相关文章

c#(Socket)同步套接字代码示例_C#教程

同步客户端套接字示例   下面的示例程序创建一个连接到服务器的客户端.该客户端是用同步套接字生成的,因此挂起客户端应用程序的执行,直到服务器返回响应为止.该应用程序将字符串发送到服务器,然后在控制台显示该服务器返回的字符串. C# using System; using System.Net; using System.Net.Sockets; using System.Text; public class SynchronousSocketClient { public static void

c#(Socket)异步套接字代码示例_C#教程

异步客户端套接字示例   下面的示例程序创建一个连接到服务器的客户端.该客户端是用异步套接字生成的,因此在等待服务器返回响应时不挂起客户端应用程序的执行.该应用程序将字符串发送到服务器,然后在控制台显示该服务器返回的字符串. C# using System; using System.Net; using System.Net.Sockets; using System.Threading; using System.Text; // State object for receiving dat

iOS - Socket 网络套接字

1.Socket 套接字 所谓 Socket,通常称为 "套接字",网络应用程序通过套接字向网络发送请求或者应答网络请求.Socket 通常用于描述 IP 地址和端口,是应⽤层与 TCP/IP 协议族通信的中间软件抽象层,它是一组接口,是一个通信链的句柄,可以用来实现不同虚拟机或者不同计算机之间的通信.在设计模式中,Socket 其实就是一个门面模式,它把复杂的 TCP/IP 协议族隐藏在 Socket 接⼝后面. Socket 起源于 Unix,而 Unix/Linux 基本哲学之一

python原始套接字编程示例分享_python

下面开始构造HTTP数据包, IP层和TCP层使用python的Impacket库,http内容自行填写. 复制代码 代码如下: #!/usr/bin/env python #-------------------------------------------------------------------------------# Name:     raw_http.py# Purpose:       construct a raw http get packet## Author:  

关于c++ socket套接字

问题描述 关于c++ socket套接字 char buff[1024] = "hello,i am v "; char buff2[512]; cin >> buff2; //strcpy(buff, buff2); send(sclient, buff, strlen(buff), 0); send(sclient, buff2, strlen(buff2), 0); 我想发送两部分数据给服务器端,可是只有第一部分能发出去,第二部分无论如何服务器端都接收不到,请问我这段

【网络编程3】Java组播套接字

这篇博文是本文学习<Java网络程序设计>书中第5章中组播套接字的学习总结.所有源代码都在文章后面我的github链接代码中. --惠州学院13网络工程 吴成兵 20160612 目录 1 目录 1 一 组播套接字概述 二 MulticastSocket 21 MulticastSocket构造方法 22MulticastSocket常用方法 三 组播套接字编程 31 使用组播套接字发送数据的过程 32 使用组播套接字接收数据的过程 四 组播套接字编程示例 41 组播套接字发送和接收程序 41

Linux下套接字详解(三)----几种套接字I/O模型

背景知识 阻塞和非阻塞 对于一个套接字的 I/O通信,它会涉及到两个系统对象,一个是调用这个IO的进程或者线程,另一个就是系统内核.比如当一个读操作发生时,它会经历两个阶段: ①等待数据准备 (Waiting for the data to be ready) ②将数据从内核拷贝到进程中 (Copying the data from the kernel to the process) 阻塞,在linux中,默认情况下所有的socket都是blocking,当用户进程调用了recvfrom/re

PHP套接字编程

编程 作者:久隆信息/张晓刚 套接字编程,一般使用c或c++.特别的在web应用程序开发中,常用perl实现套接字.除此以外,用php进行套接字编程也是一个选择.Php可以胜任吗?当然可以.Php是一门高质量的web应用程序开发语言,他的许多特性可以处理众多的任务,网络编程也不例外. 1. 理解套接字 Mail.ftp.telnet.name和finger这些服务都是在一个专用的公开的端口上提供的,通过连接到这些端口,客户程序就能够访问这些服务.这与现实生活是相似的--当需要干洗衣服的时候,找干

UNIX网络编程:套接字选项(SOL_SOCKET级别)

#include <sys/socket.h> int setsockopt( int socket, int level, int option_name,const void *option_value, size_t option_len); 第一个参数socket是套接字描述符. 第二个参数level是被设置的选项的级别,如果想要在套接字级别上设置选项,就必须把level设置为SOL_SOCKET. 第三个参数 option_name指定准备设置的选项,option_name可以有哪些