Socket客户端

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Net.Sockets;
using System.Net;

namespace IClient

{
class Program
{
static void Main(string[] args)
{
int port = Convert.ToInt32(Console.ReadLine());
string host = "10.248.87.202";
IPAddress ip = IPAddress.Parse(host);
IPEndPoint ipe = new IPEndPoint(ip, port);//把ip和端口转化为IPEndPoint实例
Socket c = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);//创建一个Socket
Console.WriteLine("Conneting...");
c.Connect(ipe);
Thread t1 = new Thread(new ParameterizedThreadStart(Send));
Thread t2 = new Thread(new ParameterizedThreadStart(Recive));
t1.Start(c);
t2.Start(c);
Console.ReadLine();
}
public static void Send(object temp)
{
while (true)
{
string sendStr = Console.ReadLine().ToString();
byte[] bs = Encoding.Unicode.GetBytes(sendStr);
((Socket)temp).Send(bs, bs.Length, 0);
}
}

public static void Recive(object temp)
{
while (true)
{
string recvStr = "";
byte[] recvBytes = new byte[1024];
var bytes = ((Socket)temp).Receive(recvBytes, recvBytes.Length, 0);//从客户端接受信息
recvStr += Encoding.Unicode.GetString(recvBytes, 0, bytes);
Console.WriteLine("Client:{0}", recvStr);//把客户端传来的信息显示出来
}
}

public static void Closed(Socket Socket, Socket temp)
{
temp.Close();
Socket.Close();
}

}
}

时间: 2024-12-20 03:16:54

Socket客户端的相关文章

C++传智笔记(6):socket客户端发送报文接受报文的api接口

#define _CRT_SECURE_NO_WARNINGS #include "stdio.h" #include "stdlib.h" #include "string.h" #include "itcast_comm.h" #include "memwatch.h" #include "itcastlog.h" /* 下面定义了一套socket客户端发送报文接受报文的api接口

基于CMPP2.0的Socket客户端(Java)

短信验证码,短信通知等功能均可通过此Socket客户端实现. 注意事项如下: 1.服务器端是按字节依次读取的,所以客户端发送的字节包中的字段要严格按照CMPP协议中的顺序,而且每个字段都要有. 2.每个字段的实际长度不足时,用0补齐:电话号码后用空格补齐 3.使用ByteBuffer时,要注意putInt()和put()的区别 我亲身实践出来的模板如下,供大家参考学习: public class Login { public static int pktLen; public static in

c++ socket 客户端库 socks5 客户端 RudeSocket? Open Source C++ Socket Library

介绍 一个c++ socket 客户端库 http://www.rudeserver.com/socket/index.html The RudeSocket™ Open Source C++ Socket Library provides a simple to use interface for creating and using client sockets. You can connect to the destination server through an unlimited n

socket 客户端

socket 客户端 的一些想法 -----------------包头-------------------------- 4byte 4byte 2byte 2byte 数据长 数据长  约定数字  0 ------------------------------------------------ 1.登录 2.每隔15秒发送心跳包 3.死循环接收数据,把收到的byte[]塞到List<byte>(队列,先进先出)(生产者) 4.List<byte> 要有同步锁 5.死循环读

socket 客户端和服务端通信

客户端要连接服务器:首先要知道服务器的IP地址.而服务器里有很多的应用程序,每一个应用程序对应一个端口号 所以客户端想要与服务器中的某个应用程序进行通信就必须要知道那个应用程序的所在服务器的IP地址,及应用程序所对应的端口号 TCP协议:安全稳定,一般不会发生数据丢失,但是效率低.利用TCP发生数据一般经过3次握手(所有效率低,自己百度三次握手) UDP协议:快速,效率高,但是不稳定,容易发生数据丢失(没有经过三次握手,不管服务器有空没空,信息全往服务器发,所有效率搞,但服务器忙的时候就没办法处

socket 客户端编程:非阻塞式连接,错误判断及退出重连

本文将探讨 socket 客户端的非阻塞式连接,连接成功后的错误判断及退出重连. 1. 连接方法 关于socket 客户端的非阻塞 connect 编程,网上找到的实现方式一般都是, 套接字创建之后,默认是阻塞式的,对其执行 connect 操作,如果服务端在监听,则会成功建立连接,但这只是理想情况.如果服务端没有开启,或是网络异常呢,connect 会一直阻塞到连接超时,这个超时时间在 Linux 下一般是 75 s 到几分钟.那么,如果在服务端未打开的时候 connect,连接建立会阻塞,即

socket 服务器 | socket 客户端

# ### socket 服务器 import socket # 创建一个socket对象 sk = socket.socket() # 绑定ip和端口(注册网络,让别人找到你) # "127.0.0.1" 默认本机的ip sk.bind( ("127.0.0.1",9000) ) # 开启监听 (等待别人连接服务器) sk.listen() ''' # 建立三次握手,建立连接 , 程序加了阻塞 , 建立三次握手如果失败,程序不往下执行 ''' conn,addr

socket客户端和服务器端

服务器端: #!/usr/bin/env python #-*- coding:utf-8 -*- import socket sk=socket.socket() sk.bind(('127.0.0.1',8989)) sk.listen(5) while True: conn,addr=sk.accept() buf=conn.recv(1024) print buf conn.send('back back back') conn.close() 客户端: #!/usr/bin/env p

php socket 客户端代码

<?php class SendDevAction{ //log日志文件 private $logDevFile = ""; //日志字符串 private $logStr = ""; //用于发送接收的socket对象 private $socket; //socket连接对象 private $connect; //对方服务器ip private $host = "211.155.82.229"; //服务器端口 private $po

c#Socket客户端和服务端的信息发送

这是我制作的界面信息,c# Socket通信的简单使用,刚开始学习,不对的地方请大家指教,目前是可以运行的,之后自己在慢慢添加新的东西.同时了解Tcp协议的三次握手.希望对跟我一样的初学者有所帮助. 客户端: 服务端: