我正准备一个简单的工作项目,并试图熟悉Unix开发环境中套接字编程的基础知识.此时,我有一些基本的服务器端代码和客户端代码设置进行通信.目前,我的客户端代码成功连接到服务器代码,服务器代码向它发送测试消息,然后退出.完善!这正是我想要完成的.现在,我正在使用用于获取有关两个环境(服务器和客户端)的信息的函数.我想获取本地IP地址并动态分配客户端的TCP端口.我发现这样做的功能是getsockname()......
//setup the socket
if ((sockfd = socket(p->ai_family, p->ai_socktype, p->ai_protocol)) == -1)
{
perror("client: socket");
continue;
}
//Retrieve the locally-bound name of the specified socket and store it in the sockaddr structure
sa_len = sizeof(sa);
getsock_check = getsockname(sockfd,(struct sockaddr *)&sa,(socklen_t *)&sa_len) ;
if (getsock_check== -1) {
perror("getsockname");
exit(1);
}
printf("Local IP address is: %s\n", inet_ntoa(sa.sin_addr));
printf("Local port is: %d\n", (int) ntohs(sa.sin_port));
Run Code Online (Sandbox Code Playgroud)
但输出始终为零......
Local IP address is: 0.0.0.0
Local port is: 0
Run Code Online (Sandbox Code Playgroud)
有没有人看到我可能会做的事情或肯定做错了?
非常感谢您的帮助!
我有一个父和子类都需要实现IDisposable.应该把virtual(和base.Dispose()?)电话放在哪里?当我只是覆盖Dispose(bool disposing)调用时,我觉得很奇怪,我IDisposable没有显式Dispose()函数(仅使用继承的函数)实现,但是还有其他所有功能.
我一直在做什么(微不足道):
internal class FooBase : IDisposable
{
Socket baseSocket;
private void SendNormalShutdown() { }
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
private bool _disposed = false;
protected virtual void Dispose(bool disposing)
{
if (!_disposed)
{
if (disposing)
{
SendNormalShutdown();
}
baseSocket.Close();
}
}
~FooBase()
{
Dispose(false);
}
}
internal class Foo : FooBase, IDisposable
{
Socket extraSocket;
private bool _disposed = false;
protected override void Dispose(bool …Run Code Online (Sandbox Code Playgroud) 这可能很简单,但我是Drupal的新手.我工作的组织不久前转而使用Drupal,但是在各种外部PHP文件中仍然存在一些遗留代码,这些代码在Drupal中转换为工作会很麻烦.
但是,能够根据针对Drupal进行身份验证的人限制对其中某些页面的访问权限,这将是非常好的.(有些页面是管理性的,例如,任何知道URL的人都可以看到它们.是的,设计很糟糕,但那是我继承的......)
如何从外部PHP文件中检查Drupal,以查看访问给定页面的人是否已通过身份验证?
是否有任何实用程序(或示例源代码)在Java中截断HTML(用于预览)?我想在服务器上而不是在客户端上进行截断.
我正在使用HTMLUnit来解析HTML.
更新:
我希望能够预览HTML,因此截断器将保持HTML结构,同时在所需的输出长度后删除元素.
实现数据库,需要一个易于使用的前端.尝试过:HeidiSQL - 编辑领域非常繁琐MySQL-Front - 没有通过SQL Editior添加表格,只在prog重新启动时才更新.
任何人都可以推荐一个他们认为合适的前端吗?
我是一名网络开发人员,与包括我在内的2-3人合作.我们目前的设置非常简单.当我们处理特定文件时,我们会尝试让对方知道.我们使用FTP来编辑我们的文件.
最近我们遇到了2个人不小心编辑一个文件,或者在本地文件上工作然后在另一个人做同样的情况下上传的问题.
从我所读到的,我需要某种控制系统.我听说过颠覆和善变.看来这些系统可能不是我需要的,因为它只是给了我不同版本的文件.我不知道它是否解决了两个人在处理文件并覆盖彼此工作的问题.
你对解决我的问题有什么建议?
编辑1:我应该提一下,我想与Netbeans集成,似乎可以使用Subversion的插件.
编辑2:是否可以通过正常的网络托管来做到这一点?(使用rackspace云站点托管).我确实在家里安装了一台服务器,我认为可以将其设置为存储库.(运行Windows Server 2007)
我遇到了与这个问题相同的问题.但是,我有一个后续问题.我似乎与原始提问者的情况相同:我有一个带有字典层次结构的plist,用于定义配置屏幕.这些是不是可变的,将留在整个应用程序相同.由于最初的讨论似乎集中在改变字典引起的问题,我必须要求确认:字典的顺序是否保证与plist中的相同,即读取时(使用initWithContentsOfFile)?如果字典永远不会改变,我可以在这种情况下使用allKeys来获得正确的键序列吗?
$(document).ready(function() {
//Check City Value
var city_value = parseInt($("#city").val());
if( city_value == 0) {
$("#state").attr("readonly", true);
//$("#rate").attr("readonly", "readonly");
} else {
$("#state").removeAttr("readonly");
//document.getElementById("state").removeAttribute("readonly",0);
//get_states(city_value);
}
/***
//Check State Value
var state_value = parseInt($('#state').val());
if( state_value == 0) {
$('#rate').attr('readonly', true);
} else {
$('#rate').attr('readonly', false);
}
***/
});
Run Code Online (Sandbox Code Playgroud)
这是我的示例代码.
<td><select name="city" id="city">
<option value="0">PLEASE_SELECT_TEXT</option>
<option value="Antalya">Antalya</option>
<option value="Bodrum">Bodrum</option>
<option value="Istanbul">Istanbul</option>
</select> </td>
<td><div id="states"><input type="text" name="state" value="FORCE_FOR_SELECT" readOnly id="state"></div></td>
Run Code Online (Sandbox Code Playgroud)
我还添加了doctype:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Run Code Online (Sandbox Code Playgroud) 当我的PHP脚本从AJAX POST请求接收数据时,$_POST变量将被转义.真正奇怪的是,这只发生在我的生产服务器上(在Linux上运行PHP 5.2.12)而不是在我的本地服务器上(在Windows上运行PHP 5.3.1).
这是AJAX代码:
var pageRequest = false;
if(window.XMLHttpRequest) pageRequest = new XMLHttpRequest();
else if(window.ActiveXObject) pageRequest = new ActiveXObject("Microsoft.XMLHTTP");
pageRequest.onreadystatechange = function() { }
var q_str = 'data=' + " ' ";
pageRequest.open('POST','unnamed_page.php',true);
pageRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
pageRequest.setRequestHeader("Content-length", q_str.length);
pageRequest.setRequestHeader("Connection", "close");
pageRequest.send(q_str);
Run Code Online (Sandbox Code Playgroud)
这有什么原因吗?我应该如何解决这个问题,以便它可以在两台服务器上运行?
编辑:我有magic_quotes的以下设置:
Local Master
magic_quotes_gpc On On
magic_quotes_runtime Off Off
magic_quotes_sybase Off Off
Run Code Online (Sandbox Code Playgroud) 在玩了一下haskell之后我偶然发现了这个功能:
Prelude Data.Maclaurin> :t ((+) . ($) . (+))
((+) . ($) . (+)) :: (Num a) => a -> (a -> a) -> a -> a
Run Code Online (Sandbox Code Playgroud)
(Data.Maclaurin由包向量空间导出.)因此它需要一个Num,一个函数,另一个Num并最终返回一个Num.以下工作有什么神奇之处?
Prelude Data.Maclaurin> ((+) . ($) . (+)) 1 2 3
6
Run Code Online (Sandbox Code Playgroud)
2显然不是一个函数(a-> a)或者我错过了什么?