unity用socket(TcpLitsener)来操作sqlserver

好久没写博客了,我也发现我堕落了,天天看连续剧。还有就是我想在北京找份unity3d程序员的工作,随时可以去上班,有合适的话,麻烦大侠们给我介绍介绍哈。我的QQ:397319689(有点笨),呵呵~~~

最近几天都在搞unity操作Sql server,也用到了底层通信的东西,局域网测试是通过了的,要谢谢我龙哥(灰太龙),他太厉害了,呵呵~~~源代码我忘记拷贝过来了,所以大概写了一下,我发现OnGUI里面的UI在服务端不大好弄啊,我这里没有用到多线程,用到了数组。

0.看看思路:



1.安装好sqlserver还需要一些dll文件,unity本身里面就有的,在路径E:\Unity\Editor\Data\Mono\lib\mono\2.0下有I18N.dll,I18N.CJK.dll和I18N.West.dll,以及System.Data.dll。

我这里安装的是sqlserver2005开发版。http://www.cnblogs.com/icewee/articles/2019783.html


2.那就是建表咯,这个就不多说了啊。


3.服务端连接数据库。

连接数据库:

con = new SqlConnection("Data Source=WANGXF;User ID=sa;Password=sa;database=data1");
				
con.Open();
查找读取数据库:

SqlDataReader Select(string content){
		
		SqlCommand cmd=new SqlCommand(content,con);		
		
	    SqlDataReader reader = cmd.ExecuteReader();
			
		return reader;
		
	}

修改,增加:

void Reset(string content){		
		
		SqlCommand cmd =new SqlCommand(content,con);
		
        cmd.ExecuteNonQuery();

	}


4.客户端和服务端同学

服务端:


using System.Net;
using System;

public class Sender{
	
	NetworkStream stream;
	
	/*服务器端开启监听*/
	public TcpListener open(){
		
		TcpListener server=null;
		
		string ip="192.168.1.103";
		
	    int iport=5561;
		
		IPAddress address=IPAddress.Parse(ip);
		
	    server=new TcpListener(address,iport);
		
		server.Start();
		
		return server;
		
	}
	/*添加正在向服务端发送请求的客户端*/
	public TcpClient addClient(TcpListener server){
		
		TcpClient client=null;
		
		if(server.Pending()){
			
		    client = server.AcceptTcpClient();	
			
		}
		return client;
	}
	/*向客户端发送消息*/
	public void send(ArrayList clients,string data) {	
		
		byte[] msg = System.Text.Encoding.UTF8.GetBytes(data);
		
		for(int i=0;i<clients.Count;i++){

			stream = (clients[i] as TcpClient).GetStream();

			stream.Write(msg,0,msg.Length);	

		}	
       
	}
	/*接收客户端的消息*/
	public string receive (ArrayList clients) {	
		
		Byte[] bytes = new Byte[4096];
		
		string data="";
		
		int i=0;
		
		for(int j=0;j<clients.Count;j++){
			
			if((clients[j] as TcpClient).Available!=0){
				
				stream = (clients[j] as TcpClient).GetStream();
				
				if((i = stream.Read(bytes,0, bytes.Length))!=0) 
		        {   
				    data = System.Text.Encoding.UTF8.GetString(bytes, 0, i);
			    }	
				
				if(data.Contains("Exit")){
					
					(clients[j] as TcpClient).Close();
					
				    clients.RemoveAt(j);	
				}
				
			}
		}
		
		return data;
	}
	
}

客户端:

using UnityEngine;
using System.Collections;
using System.Net.Sockets;
using System.Net;
using System.Text;
using System.IO;
using System;

public class Receiver{

	/*连接服务器端*/
	public void connect(TcpClient client) 
	{
		string ip="192.168.1.103";
		
	    int iport=5561;
		
        client.Connect(ip, iport);				
	}
	
	/*接收服务器端消息*/
	public string receive (TcpClient client) 
	{		
		string data="";
		
		int i=0;
		
	    Byte[] bytes = new Byte[4096];
		
	    NetworkStream stream = client.GetStream();
		
		if(client.Available!=0){

			
			if((i = stream.Read(bytes,0, bytes.Length))!=0) 
	        {   
				data = System.Text.Encoding.UTF8.GetString(bytes, 0, i);
			}
		
		}
        
		return data;
		
	}
	/*向服务器端发送消息*/
	public void send(TcpClient client,string data)
	{
		NetworkStream stream = client.GetStream();
		
		byte[] msg = System.Text.Encoding.UTF8.GetBytes(data);
		
		stream.Write(msg,0,msg.Length);
	}
}



以上只是一些主要的内容,我把工程放到我的资源里面了。http://download.csdn.net/detail/dlnuchunge/4734166

以上内容都是我乱盖的,不足的地方往大家见谅,多多指点~~~~




  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值