什么是TCP连接?我知道从客户端到服务器没有物理连接.这个连接只是客户端的套接字与三次握手后服务器创建的新套接字相关联吗?此后,一旦建立"连接",连接两端的套接字就会知道将数据包发送到何处.
这与UDP初始与TCP的握手之外的其他方式有什么不同?是每个服务器套接字只有一个客户端将数据包发送到该特定套接字?
在主机之间建立专用连接有哪些可能的优势?我对TCP和UDP的理解仍然非常基础,因此广泛的概括就足够了.
int a, b, c;
Constructor()
{
a = 5;
b = 10;
c = 15;
//do stuff
}
Constructor(int x, int y)
{
a = x;
b = y;
c = 15;
//do stuff
}
Constructor(int x, int y, int z)
{
a = x;
b = y;
c = z;
//do stuff
}
Run Code Online (Sandbox Code Playgroud)
为了防止重复"东西"和一些任务,我尝试了类似的东西:
int a, b, c;
Constructor(): this(5, 10, 15)
{
}
Constructor(int x, int y): this(x, y, 15)
{
}
Constructor(int x, int y, int z) …
Run Code Online (Sandbox Code Playgroud) 更新:我花了几天时间搞乱了透明度的东西.我今晚又开始搞砸了.我使用Hans Passant的解决方案得到了一个新结果: 新结果http://img3.imageshack.us/img3/4265/icontransp.jpg http://img3.imageshack.us/img3/4265/icontransp.jpg
Passant的解决方案确实解决了透明背景渐变的问题.但是,我仍然遇到问题,我的图标中的透明颜色与表单的BackColor混合.您可以在上图中看到图标各个部分周围的紫红色.
原始内容:
我已经在这几个小时了,而且我运气不好.我已经搞砸了Control.Region,Form.TransparencyKey,Form.Opacity以及其他一些带有一些时髦效果的随机事物.
最近我一直在尝试自定义我的桌面,并决定搞乱应用程序码头.在看到Mac Dock和一些第三方Windows实现提供的内容之后,我决定构建自己的.
最终我想继续使用Win32 API.目前我只想使用尽可能多的C#和.Net框架功能.
我想在这个应用程序中做一些事情:
这就是我拍摄的效果: 期望的效果http://img207.imageshack.us/img207/5716/desired.jpg http://img207.imageshack.us/img207/5716/desired.jpg
此图像显示了我想要实现的视觉效果.这是我为一个名为Rainmeter的程序制作的皮肤.图像显示了皮肤后面的Notepad ++,其中一些皮肤文件在编辑器中打开.菜单是透明的,但图标保持不透明.
我的方法:
使用表单作为菜单似乎是我合乎逻辑的首选.我对事件有基本的了解.我不太确定如何创建自己的点击事件,因此表单可以使事件处理更容易.我考虑了一些图标选项.我决定使用PictureBoxes作为图标,因为它们可以保存图像并接收事件.
一旦我完成了菜单中所有结构逻辑的代码,我就开始玩它来尝试获得我想要的视觉效果.Form.Opacity影响了表单上所有内容的透明度.由于我希望图标完全不透明,所以我独自留下了这个属性.我尝试将BackColor设置为Color.Transparent,但这会产生错误.我玩了几个组合...... 组合效果http://img204.imageshack.us/img204/757/effectsi.jpg http://img204.imageshack.us/img204/757/effectsi.jpg
我使用Drawing2D.LinearGradientBrush将渐变绘制到位图中.然后将此位图放置为Form.BackgroundImage或PictureBox.Image.如果使用,PictureBox的大小将覆盖整个表单并发送到后面.
我注意到一些Form.BackgroundColor会与我的图标轮廓混在一起.图标沿边缘具有透明度,使外观更加平滑.由于图标正在拾取Form的BackgroundColor,这使我认为PictureBoxes在图标加载到表单时创建新图像.然后,当图像的半透明部分与表单后面的任何颜色合并时,它们将与Form的BackgroundColor合并.
白色桌面效果http://img838.imageshack.us/img838/8299/whitedesktop.jpg http://img838.imageshack.us/img838/8299/whitedesktop.jpg
在此图像中,即使Form的紫红色现在完全透明,您也可以看到图标中存在的紫红色.我忘了指出在每种情况下使用相同的绿色到黄色渐变,Alpha值为150.在渐变看起来不是绿色的图像中,这是因为透明颜色与紫红色背景混合.
我不确定从这里做什么.如果我能以某种方式使表单完全透明,我觉得我能得到我想要的东西.我也在想我可能只是绘制图标而不是使用PictureBoxes.那么问题是设置图标以接收鼠标事件.(我从未做过自己的事件,我认为它会涉及一些Win32 API调用.)
我可以用PictureBoxes做些什么来获得我想要的效果吗?无论哪种情况,我都会接受任何有关我正在努力实现的整体效果的想法或建议.
更新:似乎我不清楚我的问题是什么.约翰·阿伦对我的头衔的编辑似乎也引起了更多的误解.标题更改为"我如何获取文件夹或文件路径?" 这不是我追求的.我知道有一个对话框可以处理文件,另一个对象可以处理文件夹.我知道这些对话框中的每一个都可以返回文件夹或文件的路径.我说我不确切知道如何获取文件路径,但即使我知道如何这样做也没有帮助我.
正如我原来的问题所述:
"我让用户通过某个对话框选择文件夹或文件.我不知道路径是属于文件夹还是文件.一旦用户点击"打开"按钮,我想要当前选择的目录或要存储在字符串中的文件路径."
我在这里的意思是我想使用一些可能存在或不存在的对话框.我不知道用户是在文件或文件夹之后.用户知道这一点,但用户不知道路径.这就是使用对话框的原因.用户将搜索所需的文件或文件夹,然后单击"打开".根据我的需要使用单个对话框更有意义.我想看看是否存在这样的对话框,因为我对.NET Framework的体验有限.
Jared Kells的回答几乎就是我想要的.在阅读了他提供的内容后,似乎不存在这样的对话框.我将不得不提供自己的实现.
由于提出我自己的实现可能会耗费时间和困难,我现在将不会这样做.如果某人提供了非常有帮助的答案,我会等几天选择答案.
感谢那些贡献的人,即使它不是我所追求的.
原始内容:
我正在寻找一种方法来获取文件夹或文件的文件路径.我一直在玩OpenFileDialog
,FolderBrowserDialog
没有太大的成功.我能够使用FolderBrowserDialog.SelectedPath获取文件夹路径.使用OpenFileDialog
该类,我无法弄清楚如何获取文件路径.
即使我能弄明白,我仍然处于困境中.我让用户通过某个对话框选择文件夹或文件.我不知道路径是属于文件夹还是文件.一旦用户点击"打开"按钮,我希望当前选择的目录或文件路径存储在字符串中.看起来我使用的每个类都被文件或文件夹困住了.
这是否可以使用WinForms对话框?我不想在此时编写自己的对话框.
当我学习各种技术时,我经常会想到我经常使用的应用程序如何实现这些东西.我和一些FPS一起玩了几个MMO.我做了一些环顾四周,发生在这个线程上:
http://www.gamedev.net/topic/319003-mmorpg-and-the-ol-udp-vs-tcp
我一直看到,当允许丢失一些数据包时UDP会闪耀.涉及的开销更少,更新更快.在环顾四周并阅读各种文章和主题之后,我发现通常会使用UDP完成字符定位.像FPS这样的游戏通常会使用UDP完成,因为发生了所有快速变化.
我已经多次看到有人指出同时使用UDP和TCP时可能发生的问题.这些问题可能是什么?新手程序员大多会遇到这些问题吗?在我看来,使用UDP和TCP的组合是理想的,获得每个的优点.但是,如果将两者结合使用会增加代码的大量复杂性以处理所引起的问题,那么在某些情况下可能不值得.
c# ×3
tcp ×2
udp ×2
winforms ×2
constructor ×1
dialog ×1
file ×1
graphics ×1
image ×1
multiplayer ×1
parameters ×1
path ×1
this ×1
transparency ×1