c# 服务端
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net.Sockets;
using System.Net;
using System.Threading;
using System.IO; namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{ Dictionary<string, Socket> d = new Dictionary<string, Socket>();
public Form1()
{
InitializeComponent();
}
Socket so; private void button1_Click(object sender, EventArgs e)
{
string str = this.textBox1.Text.Trim();
Byte[] buf = System.Text.Encoding.UTF8.GetBytes(str);
//Byte[] buffernew = new Byte[buf.Length + 1];
//buffernew[0] = 0;
//int i = 1;
//foreach (byte a in buf)
//{
// buffernew[i] = a;
// i++;
//}
List<byte> list = new List<byte>();
list.Add(0);
list.AddRange(buf);
byte[] buffernew = list.ToArray();
d[comboBox1.SelectedItem.ToString()].Send(buffernew);
//a.Send(buf);
} private void button2_Click(object sender, EventArgs e)
{
string id = this.ip.Text;
int port = Convert.ToInt32(this.port.Text);
IPAddress ip = IPAddress.Parse(id);
IPEndPoint ports = new IPEndPoint(ip,port);
so = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
so.Bind(ports);
so.Listen(10);
Thread d = new Thread(client);
d.IsBackground = true;
d.Start(so); } public void listin(string msg)
{ this.textBox2.AppendText(msg + "\r\n"); } //public void ceshi()
//{
// while (true)
// {
// Socket ce = so.Accept();
// listin(ce.RemoteEndPoint.ToString()+"连接成功");
// Thread ax = new Thread(client);
// ax.Start(ce); // } //} public void client(object o)
{
Socket s = o as Socket; while (true)
{
Socket a = s.Accept();
d.Add(a.RemoteEndPoint.ToString(), a);
this.comboBox1.Items.Add(a.RemoteEndPoint.ToString());
listin(a.RemoteEndPoint.ToString() + "连接成功");
Thread th = new Thread(recevie);
th.IsBackground = false;
th.Start(a); } } void recevie(object o)
{
Socket a = o as Socket;
while (true)
{
Byte[] buffer = new Byte[1024 * 1024 * 3];
int t = a.Receive(buffer);
if (t == 0)
{
break;
}
string str = Encoding.UTF8.GetString(buffer, 0, t);
listin(a.RemoteEndPoint.ToString() + ":" + str);
}
} private void Form1_Load(object sender, EventArgs e)
{
Control.CheckForIllegalCrossThreadCalls = false;
} private void button3_Click(object sender, EventArgs e)
{
OpenFileDialog open = new OpenFileDialog();//创建对话框
open.InitialDirectory = @"C:\Documents and Settings\All Users\桌面"; //设置对话框路径
open.Title = "对话框1"; //对话框标题
open.Filter = "所有文件|*.*";
open.Multiselect = true; //多选
open.ShowDialog(); //打开对话框
string paths = open.FileName; //读取文件的全路径
if (paths == "") return;
this.textBox3.Text = paths; } private void button4_Click(object sender, EventArgs e)
{
string path = this.textBox3.Text;
using (FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read))
{
byte[] bytes = new byte[1024 * 1024 * 5];
int r = fs.Read(bytes, 0, bytes.Length);
List<byte> list = new List<byte>();
list.Add(1);
list.AddRange(bytes);
byte[] buffernew = list.ToArray();
d[comboBox1.SelectedItem.ToString()].Send(buffernew,0,r+1,SocketFlags.None);
}
} private void button5_Click(object sender, EventArgs e)
{
byte[] buf = new byte[1];
buf[0] = 2;
List<byte> list = new List<byte>();
list.Add(2);
list.AddRange(buf);
byte[] buffernew = list.ToArray();
d[comboBox1.SelectedItem.ToString()].Send(buffernew);
}
}
}
c# 服务端的更多相关文章
- Swift3.0服务端开发(一) 完整示例概述及Perfect环境搭建与配置(服务端+iOS端)
本篇博客算是一个开头,接下来会持续更新使用Swift3.0开发服务端相关的博客.当然,我们使用目前使用Swift开发服务端较为成熟的框架Perfect来实现.Perfect框架是加拿大一个创业团队开发 ...
- 关于如何提高Web服务端并发效率的异步编程技术
最近我研究技术的一个重点是java的多线程开发,在我早期学习java的时候,很多书上把java的多线程开发标榜为简单易用,这个简单易用是以C语言作为参照的,不过我也没有使用过C语言开发过多线程,我只知 ...
- Socket聊天程序——服务端
写在前面: 昨天在博客记录自己抽空写的一个Socket聊天程序的初始设计,那是这个程序的整体设计,为了完整性,今天把服务端的设计细化记录一下,首页贴出Socket聊天程序的服务端大体设计图,如下图: ...
- zookeeper源码分析之五服务端(集群leader)处理请求流程
leader的实现类为LeaderZooKeeperServer,它间接继承自标准ZookeeperServer.它规定了请求到达leader时需要经历的路径: PrepRequestProcesso ...
- zookeeper源码分析之四服务端(单机)处理请求流程
上文: zookeeper源码分析之一服务端启动过程 中,我们介绍了zookeeper服务器的启动过程,其中单机是ZookeeperServer启动,集群使用QuorumPeer启动,那么这次我们分析 ...
- zookeeper源码分析之一服务端启动过程
zookeeper简介 zookeeper是为分布式应用提供分布式协作服务的开源软件.它提供了一组简单的原子操作,分布式应用可以基于这些原子操作来实现更高层次的同步服务,配置维护,组管理和命名.zoo ...
- 创建APPID&&部署服务端教程
创建APPID&&部署服务端 一.创建APPID 1.打开https://console.developers.google.com ,左击顶部Project,然后左击创建项目 2.输 ...
- 简析服务端通过GT导入SHP至PG的方法
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 项目中需要在浏览器端直接上传SHP后服务端进行数据的自动入PG ...
- TYPESDK手游聚合SDK服务端设计思路与架构之二:服务端设计
在前一篇文中,我们对一个聚合SDK服务端所需要实现的功能作了简单的分析.通过两个主要场景的功能流程图,我们可以看到,作为多款游戏要适配多个渠道的统一请求转发中心,TYPESDK服务端主要需要实现的功能 ...
- TYPESDK手游聚合SDK服务端设计思路与架构之一:应用场景分析
TYPESDK 服务端设计思路与架构之一:应用场景分析 作为一个渠道SDK统一接入框架,TYPESDK从一开始,所面对的需求场景就是多款游戏,通过一个统一的SDK服务端,能够同时接入几十个甚至几百个各 ...
随机推荐
- (Command Pattern)命令模式
定义 将“请求”封装成对象,以便使用不同的请求.队列或者日志来参数化其他对象.命令模式也支持可撤销的操作. 结构图: 命令模式的角色划分: Reciever(命令的接收者):接收命令,并知道如何进行必 ...
- Facebook Hacker Cup 2014 Qualification Round
2014 Qualification Round Solutions 2013年11月25日下午 1:34 ...最简单的一题又有bug...自以为是真是很厉害! 1. Square Detector ...
- ASP.NET的一般处理程序对数据的基本操作
TableList.ashx: <%@ WebHandler Language="C#" Class="TableList" %> using Sy ...
- Uva 11538 - Chess Queen
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&p ...
- 将url转化成对象
<script> var url = "baidu.com?"; //var url = window.location.search; //获取url functio ...
- <c:if>标签的使用
<c:if>标签用来在页面中实现条件化的判断功能.它的主要目的就是替换Java脚本中的if语句,来实现页面内容的条件化输出功能.这个标签所进行的判读主要是依据表达式来进行的,如果该表达式的 ...
- 禁用cookie后session是如何设置的
我们都知道当在session 会话有基于cookie和基于url两种传递SESSIONID的方法.为了实现客户端禁止cookie发送的情况也不影响客户登陆网站,可以设置 php.ini中 sessio ...
- Linux 远程和本地的一些解决方案
有的小伙伴想Linux 远程登录 两台机器同时root登录,其实可以同时多个用户的. Linux是多用户的多任务系统,可以同时多个用户登录到系统,也可以一个用户通过不同终端登录到一个系统执行不同的操 ...
- 解决无法连接到visual studio开发服务器的问题
今天vs抽风,调试网站出现下图那样: 然后我开始百度搜索 "无法连接到visual studio开发服务器" 出现很多文章: 打开一篇问题,看了里面的内容, 那个解决办法也不是最好 ...
- 用WIN7系统IIS的提示:数据库连接出错,请检查Conn.asp文件中的数据库参数设置
我用科讯的从4.0开始,去年开始很少用科讯做新站了,今天拿来做一下,结果悲剧了,数据库路径老是不对,百度一番又一番的,,最后终于给度娘解决了.分享出来给遇到同样的问题的人. 用WIN7系统IIS的注意 ...