Search Results

Search found 34397 results on 1376 pages for 'php socket'.

Page 1098/1376 | < Previous Page | 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105  | Next Page >

  • Facebook fbAsyncInit firing twice

    - by JoelD
    I'm using Facebook's Javascript SDK to allow login/logout, and my problem is that when I use their window.fbAsyncInit call to initiate the FB session, it always fires twice. I've included a simplified code sample. I'd appreciate any help! <html><head> <script type="text/javascript"> ...some of my own functions, not related to Facebook... </script> </head> <body> <div id="fb-root"></div> <script> window.fbAsyncInit = function() { FB.init({ appId : '<?php echo FACEBOOK_APPID; ?>', session : <?php echo json_encode($session); ?>, status:false, cookie:true, xfbml: true }); alert("1"); FB.getLoginStatus(function(response) { if(response.session) { ...do stuff... } else { ...do other stuff...} }); }; alert("2"); </script> ...page contents... </body></html> The "2" alert fires a single time, and then the "1" alert fires twice.

    Read the article

  • Any reason why my $.ajax success callback is not executed in Jquery?

    - by arma
    Hello, Today i discovered that my dev version of my website do not execute success callback, but all other javascript and jquery code is running good. Even my ajax request is performed and i can see response in firebug. $('#login').submit(function(){ var email = $('#l_email').val(); var pass = $('#l_pass').val(); if(email && pass != ''){ var str = decodeURIComponent($(this).serialize()); $.ajax({ type: "POST", url: "login.php", data: str, success: function(msg){ if(msg == 'OK'){ window.location = 'index.php' }else if (msg == 'NOT_OK'){ if(lang == 'lv'){ alert(message); }else if(lang == 'ru'){ alert(message); } }else if (msg == 'EMAIL_NOT_VALID'){ if(lang == 'lv'){ alert(message); }else if(lang == 'ru'){ alert(message); } } } }); }else{ alert('That form is empty.'); } return false; }); The thing is $.ajax part executes fine and i can see response in firebug "OK". But redirect is not happening and even if i replace that redirect with something like alert or console.log nothing comes up. What could cause this? It's really hard to track since firebug gives no errors.

    Read the article

  • Setting up magic routes for plugins in CakePHP 1.3?

    - by Matt Huggins
    I'm working on upgrading my project from CakePHP 1.2 to 1.3. In the process, it seems that the "magic" routing for plugins by which a controller name (e.g.: "ForumsController") matching the plugin name (e.g.: "forums") no longer automatically routes to the root of the plugin URL (e.g.: "www.example.com/forums" pointing to plugin "forums", controller "forums", action "index"). The error message given is as follows: Error: ForumsController could not be found. Error: Create the class ForumsController below in file: app/controllers/forums_controller.php <?php class ForumsController extends AppController { var $name = 'Forums'; } ?> In fact, even if I navigate to "www.example.com/forums/forums" or "www.example.com/forums/forums/index", I get the same exact error. Do I need to explicitly set up routes to every single plugin I use? This seems to destroy a lot of the magic I like about CakePHP. I've only found that doing the following works: Router::connect('/forums/:action/*', array('plugin' => 'forums', 'controller' => 'forums')); Router::connect('/forums', array('plugin' => 'forums', 'controller' => 'forums', 'action' => 'index')); Setting up 2 routes for every single plugin seems like overkill, does it not? Is there a better solution that will cover all my plugins, or at least reduce the number of routes I need to set up for each plugin?

    Read the article

  • The post->success->data variable is empty..

    - by Asaf
    Hello, I tried sending some data like so: <form action="http://www.someurl.com/something.php" id="login"> <input type="textbox" id="UserName" value="user"> <input type="textbox" id="Password" value="password"> <input type="submit" value="submit"> </form> <div id="result"></div> <script type="text/javascript"> $('form#login').submit(function() { $.post($('form#login').attr('action'), $('form#login').serialize(), function(data) { $('#result').html(data+'222') }); return false; }); </script> Now, the value of #result div change to 222... that is: the post was successful but for some reason there is no data, and when I go directly to something.php and post manually, it does bring back data (am I mistaken or does the post(success(data)) variable returns the whole page returned after you post something? if so, how could it be?) Thank you very much for your help

    Read the article

  • Login to website and use cookie to get source for another page

    - by Stu
    I am trying to login to the TV Rage website and get the source code of the My Shows page. I am successfully logging in (I have checked the response from my post request) but then when I try to perform a get request on the My Shows page, I am re-directed to the login page. This is the code I am using to login: private string LoginToTvRage() { string loginUrl = "http://www.tvrage.com/login.php"; string formParams = string.Format("login_name={0}&login_pass={1}", "xxx", "xxxx"); string cookieHeader; WebRequest req = WebRequest.Create(loginUrl); req.ContentType = "application/x-www-form-urlencoded"; req.Method = "POST"; byte[] bytes = Encoding.ASCII.GetBytes(formParams); req.ContentLength = bytes.Length; using (Stream os = req.GetRequestStream()) { os.Write(bytes, 0, bytes.Length); } WebResponse resp = req.GetResponse(); cookieHeader = resp.Headers["Set-cookie"]; String responseStream; using (StreamReader sr = new StreamReader(resp.GetResponseStream())) { responseStream = sr.ReadToEnd(); } return cookieHeader; } I then pass the cookieHeader into this method which should be getting the source of the My Shows page: private string GetSourceForMyShowsPage(string cookieHeader) { string pageSource; string getUrl = "http://www.tvrage.com/mytvrage.php?page=myshows"; WebRequest getRequest = WebRequest.Create(getUrl); getRequest.Headers.Add("Cookie", cookieHeader); WebResponse getResponse = getRequest.GetResponse(); using (StreamReader sr = new StreamReader(getResponse.GetResponseStream())) { pageSource = sr.ReadToEnd(); } return pageSource; } I have been using this previous question as a guide but I'm at a loss as to why my code isn't working.

    Read the article

  • How to tell the parent that the thread is done in C++ using pthreads ?

    - by milleroff
    Hi. I have a TCP Server application that serves each client in a new thread using POSIX Threads and C++. The server calls "listen" on its socket and when a client connects, it makes a new object of class Client. The new object runs in its own thread and processes the client's requests. When a client disconnects, i want some way to tell my main() thread that this thread is done, and main() can delete this object and log something like "Client disconnected". My question is, how do i tell to the main thread, that a thread is done ?

    Read the article

  • Apache mod_rewrite - forward domain root to subdirectory

    - by DuFace
    I have what I originally assumed to be a simple problem. I am using shared hosting for my website (so I don't have access to the Apache configuration) and have only been given a single folder to store all my content in. This is all well and good but it means that all my subdomains must have their virtual document root's inside public_html, meaning they effectively become a folder on my main domain. What I'd like to do is organise my public_html something like this: public_html/ www/ index.php ... sub1/ index.php ... some_library/ ... This way, all my web content is still in public_html but only a small fraction of it will be served to the client. I can easily achieve this for all the subdomains, but it's the primary domain that I'm having issues with. I created a .htaccess file in public_html with the following: Options +SymLinksIfOwnerMatch # I'm not allowed to use FollowSymLinks RewriteEngine on RewriteBase / RewriteCond %{REQUEST_URI} !^/www [NC] RewriteRule ^(.*)$ /www/$1 [L] This works fairly well, but for some strange reason www.example.com/stuff is translated into a request for www.example.com/www/stuff and hence a 404 error is given. It was my understanding that unless an 'R' flag was specified, mod_rewrite was purely internal so I can't understand why the request is generated as that implies (to me at least) redirection. I assumed this would be a trivial problem to solve as all I actually want to do is forward all requests for the root of www.example.com to a subdirectory, but I've spent hours searching for answers and none are quite correct. I find it difficult to believe I'm the only person to have this issue. I apologise if this question has been answered on here before, I did search and trawl but couldn't find an appropriate answer. Please could someone shed some light on this?

    Read the article

  • How do you make sure your pakcet is delivered to right client using public ip address

    - by TemporaryNickName
    So private IP addresses are 192.168.00 ~ 192.168.255.255 or 10.0.0.0 or 172.16.0.0 ~ 172.31.255.255 If I accepted a client to my serversocket, I can get the client's remoteIp address by using socket.getremotesocketaddress(); But I suspect the IP address that I'm getting from this method is only the public IP address and it must have more than one client using same public IP as this one (one like you see when you go on to the website www.whatismyip.com). So if I want to make sure that my packet is delivered to the right person using some IP address or otherthing that uniquely identifies a person, what should I have to do?

    Read the article

  • How can I "interconnect" two sockets in Linux?

    - by Vi
    There are two connected sockets. How can I interconnect them? Data appeared on the one socket should be written to the other. EOF/FIN should propogate well. If one is half-closed, the other should also be half-closed. int client = get_connected_client_socket(); int proxy = get_connected_proxy_socket(); negotiate_with_proxy(proxy); iterconnect(client, proxy); // Now forgot about both client and proxy. // System should handle IO/shutdown/close. // Ideally even without any support of the user-space process. Can Linux do it? Can it be done by tricking connection tracking to change tracking status of existing connection? @related http://stackoverflow.com/questions/2673975/determine-how-much-can-i-write-into-a-filehandle-copying-data-from-one-fh-to-the

    Read the article

  • Iphone - cannot grant permission for publishing on a Facebook page that i administer

    - by user323817
    I want to open a dialog on the IPhone so a user can grant my application permission to post on a Facebook page that the user administers. Following the docs, I can grant permissions for the user's stream and I can even post on a page that he is a fan of. However, the post on the page is listed as from the username, not on behalf of the page itself, even though he is an administrator of the page. According to the Prompting for Permissions section at: http://wiki.developers.facebook.com/index.php/Authorization_and_Authentication_for_Desktop_Applications I should be able to create a prompt on the IPhone for granting permission to publish_stream on a Facebook page that he administers. The sample url they give for a web "popup" dialog is: http://www.facebook.com/connect/prompt_permissions.php?api_key=YOURAPIKEY&v=1.0&next=http://www.facebook.com/connect/login_success.html?xxRESULTTOKENxx&display=popup&ext_perm=read_stream,publish_stream&enable_profile_selector=1&profile_selector_ids=1234%2C5454 This works as expected and a drop down of the pages is displayed. However, since my application is on the IPhone, I change the display=popup to display=touch. This does not seem to work and I've tried fiddling with the parameters several ways but the drop down never comes up. Anyone find a way around this? The popup option doesn't seem to work since I get an error trying to display it.

    Read the article

  • Why does PEAR get installed to my user directory?

    - by webworm
    I am new to Linux and I am attempting to install the PHP PEAR library on a virtual server which is running Ubuntu. I am following a tutorial that covers installing PEAR but have run up against an area where I am confused. When running the PEAR installation program I am prompted as to what I want the INSTALL_PREFIX to be. Evidently the INSTALL_PREFIX, among other things, determines where PEAR will be installed. The tutorial suggest the value of INSTALL_PREFIX be the following path ... "/home/MY_USER_NAME/pear" where MY_USER_NAME = my user account Having come from a Windows world, applications are installed on the system where everyone can use them. If I install PEAR underneath my user directory will other developers on the system be able to make use of PEAR in their PHP scripts? I want to make PEAR available to all users and not just myself. Could someone explain to me the difference between installing for all users and installing just for myself? Does the install location matter? Should I be installing PEAR in a different location? Thanks for any suggestions. P.S. The tutorial I am following is located at the following URL ... http://articles.sitepoint.com/article/getting-started-with-pear/2

    Read the article

  • How to difference sockaddr_in struct from same subnetwork and different IP/users

    - by user1428926
    I am developing a gaming server using the Winsock2 API from Windows, just for now until porting it to Linux. The main problem I have found is that I don't know how to differentiate gaming clients that come from the same router/network. Let´s imagine 2 gamers that are in the same network going to the Internet through the same router IP and port with, for example IP 220.100.100.100 and port 5000, how can my C/C++ server differentiate both TCP connections and know that they are two different gamers? Can I find any difference in the sockaddr_in struct that returns the socket when accept(...) returns ??

    Read the article

  • Android Source code download error

    - by user351850
    Hi all I have followed the instructions on the Android website on how to download the latest android source code files but it gives errors when i run this command: repo init -u git://android2.git.kernel.org/platform/manifest.git It gives the following error: Getting repo ... from git://android.git.kernel.org/tools/repo.git android.git.kernel.org[0: 199.6.1.176]: errno=Connection refused android.git.kernel.org[0: 130.239.17.12]: errno=Connection refused fatal: unable to connect a socket (Connection refused) On checking forums for its resolution, i was told that port 9418 was being blocked. I use Ubuntu 10.04 and ensured that the firewall wasnt blocking the port and also enabled the port and the above IP addresses. I also spoke to the networking peeps who ensured that no traffic from the internet is being blocked. I would be glad if i could get directions on how to proceed next. Many thanks as you respond. Saheed.

    Read the article

  • C++ networking simple send and receive

    - by Wallter
    I'm trying to link 10 computers together, the program i would like to write would have one 'control' computer. From what I've looked up this computer would take all the packets sent over the network and do a echo with them... right? The other computers would need to be able to send information (then echoed to the others) to the 'control' ... is there a easy! or simple way to do this? From what I've seen i want a non-blocking socket? I have looked into sockets and such but for an armature programmer like me, this seems like a daunting task :) I'm kind-of looking for an easy class implication that has a send() and an event driven recv(). I'm not going to be sending that much information over the network.

    Read the article

  • Cakephp, Route old google search results to new home page

    - by ion
    Hi there, I have created a new website for a company and I would like all the previous search engine results to be redirected. Since there were quite a few pages and most of them where using an id I would like to use something generic instead of re-routing all the old pages. My first thought was to do that: Router::connect('/*', array('controller' => 'pages', 'action' => 'display', 'home')); And put that at the very end of the routes.php file [since it is prioritized] so that all requests not validating with previous route actions would return true with this one and redirect to homepage. However this does not work. I'm pasting my routes.php file [since it is small] hoping that someone could give me a hint: Router::connect('/', array('controller' => 'pages', 'action' => 'display', 'home')); Router::connect('/company/*', array('controller' => 'articles', 'action' => 'view')); Router::connect('/contact/*', array('controller' => 'contacts', 'action' => 'view')); Router::connect('/lang/*', array('controller' => 'p28n', 'action' => 'change')); Router::connect('/eng/*', array('controller' => 'p28n', 'action' => 'shuntRequest', 'lang' => 'eng')); Router::connect('/gre/*', array('controller' => 'p28n', 'action' => 'shuntRequest', 'lang' => 'gre')); Router::parseExtensions('xml');

    Read the article

  • jQuery Ajax loads URL multiple times, how do I unbind/rebind properly?

    - by gmoz22
    I load a SELECT element via Ajax (list of brands), get its selected value (brand id) and load another SELECT via another Ajax URL (list of templates for currently selected brand). Here's my code: $(document).ready( function() { // DO NOT cache Ajax calls $.ajaxSetup ({ cache: false }); // loader var ajax_load = "Loading..."; // Brands List URL var loadBrandUrl = "getBrandsList.php"; // Templates List URL var loadTemplateUrl = "getTemplatesList.php"; $("#brandslistSelect").html(ajax_load).load(loadBrandUrl) .ajaxComplete(function(){ // Brands select loaded /* Load Templates SELECT the first time since no .change() has happened */ var selectedBrand = $("#brandslistSelect option:selected").attr("value"); // get the value console.log(selectedBrand); // Log selected brand to console // get Templates select, commented for now since it does an infinite loop // $("#templateslistSelect").html(ajax_load).load(loadTemplateUrl, { BrandId: selectedBrand } ); /* End initial load template */ /* On interaction with the Brands SELECT */ $("#brandslistSelect").change(function () { // on interaction with select selectedBrand = $("#brandslistSelect option:selected").attr("value"); // get the value // get Templates SELECT $("#templateslistSelect").html(ajax_load).load(loadTemplateUrl, { BrandId: selectedBrand } ) }); /* End interaction with the Brands SELECT */ }); }); It returns selectedBrand in the console 3 times : selectedBrand = undefined selectedBrand = undefined selectedBrand = 101 Now, if I uncomment the following line, same output as above but it also loads the templates URL indefinitely : // $("#templateslistSelect").html(ajax_load).load(loadTemplateUrl, { BrandId: selectedBrand } ); Any idea how I could modify this code to make it work as intended? Thanks for your help stackOverflow community!

    Read the article

  • Image jQuery scroller in a container. (like facebook cropper) can't get values of position.

    - by Stefan
    Hey all. Having a reallllll mind pain. I have a php image uploader which is all good and sotring the file and the jquery ajax is returning the image in an ammended html div with a div set up like this: #crop-holder { width:80px; height:80px; margin:10px 10px 20px 10px; border:1px #c0c0c0 solid; overflow:hidden; cursor:move; } The image is viewing fine and I am using the jquery scrollview plugin: http://code.google.com/p/jquery-scrollview/ I have tried adding a few lines to the plugin to store variables of scrollTop and Left and then replacing two hidden input values with x and y in my page. And then on the returned ajax html in the div I am trying to on a button click (for example) retrieve the values of the two hidden inputs.... Heres what i added to the plugin (i'm no js expert!): .mouseout(function(){ var _m = this.m; var lasty = _m.scrollTop(); getElementById("ycord").value = lasty; var lastx = _m.scrollLeft(); getElementById("xcord").value = lastx; self.stopgrab(); }) Still no luck!! How can I get the scrollTop and scrollLeft and successfully prepare them for sending onto another php script!? Thanks:) stefpretty

    Read the article

  • Scalable Full Text Search With Per User Result Ordering

    - by jeremy
    What options exist for creating a scalable, full text search with results that need to be sorted on a per user basis? This is for PHP/MySQL (Symfony/Doctrine as well, if relevant). In our case, we have a database of workouts that have been performed by users. The workouts that the user has done before should appear at the top of the results. The more frequently they've done the workout, the higher it should appear in search matches. If it helps, you can assume we know the number of times a user has done a workout in advance. Possible Solutions Sphinx - Use Sphinx to implement full text search, do all the querying and sorting in MySQL. This seems promising (and there's a Symfony Plugin!) but I don't know much about it. Lucene - Use Lucene to perform full text search and put the users' completions into the query. As is suggested in this Stack Overflow thread. Alternatively, use Lucene to retrieve the results, then reorder them in PHP. However, both solutions seem clunky and potentially unscalable as a user may have completed hundreds of workouts. Mysql - No native full text support (InnoDB), so we'd have use LIKE or REGEX, which isn't scalable.

    Read the article

  • Drupal Ubercart: error in passing values back to the Content Type after checkout

    - by user512826
    I am trying to set up event registration in a drupal site using Ubercart + the UC Node Checkout Module. I have followed the instructions provided in http://drupaleasy.com/blogs/ultimike/2009/03/event-registration-ubercart. However I seem to be unable to pass the Order ID and Payment Status back to the node. I have created a conditional action that on node checkout executes the following PHP code: I am using the following code to update the node on checkout - but nothing happens: if (isset($order)) { foreach ($order->products as $product) { if (isset($product->data['node_checkout_nid'])) { $node = node_load($product->data['node_checkout_nid']); $node->field_status['0']['value'] = 1; $node->field_orderid['0']['value'] = $order->order_id; node_save($node); } } } I know the conditional action is working because it prints dsm('hello world') messages on node checkout - however when I include a dsm($node) or dsm($product) in the PHP code, they return blank. Also when I go back to my product and click the 'Devel' tab, the 'data' string contains the following characters: a:1:{s:13:"form_build_id";s:37:"form-3ccc03345f4832c69666a89c560de940";} In this link http://www.ubercart.org/forum/support/10951/node_checkout_issue I found someone else with the same issue, but I have been unable to replicate his solution. Can anybody please help? Thanks so much!

    Read the article

  • How do i make multi call with SudzC

    - by laxonline
    I am developing magento eCommerce stores in iPhone. For that, i have using Sudzc service class for SOAP WS call. Now, I'm trying to create a cart session its working fine. im getting the cardid. And i need to add one product to cart with some arguments. below is the php request example i need to call same this PHP Request Example $proxy = new SoapClient('http://beta.saletab.com/api/soap/?wsdl'); $sessionId = $proxy->login('xxxx', 'zzzzzzzzzzzzzzzzzzzzzzzzz'); //print_r($sessionId); $shoppingCartId = $proxy->call( $sessionId, 'cart.create'); $result = $proxy->call($sessionId,'cart_product.add',array($shoppingCartId,array('product_id'=>"3109",'qty' => 2)),0); echo "REQUEST HEADERS:\n" . $result->__getLastRequestHeaders() . "\n"; IOS Request im trying to send some product details like productid, sku & cardid SDZMagentoService *service = [SDZMagentoService service]; NSString *sessionId = [IMAPP_DELEGATE getUserDefault:IMAPI_SESSIONID]; NSString *cartId = [IMAPP_DELEGATE getUserDefault:IMAPI_CARTSESSIONID]; NSDictionary *argu = [[NSDictionary alloc] initWithObjectsAndKeys:@"3109",@"product_id",@"2",@"qty",cartId,@"card_id", nil]; [service call:self action:@selector(cartTest:) sessionId:sessionId resourcePath:@"cart_product.add" args:argu];

    Read the article

  • C# TCP First Message Delay

    - by ikurtz
    greetings, i am writng a socket program using sockets in c# (asynchronous). the issue is, when a client connects to the server it kinda happens quiet fast. then.. when the first message is sent there is a delay in responding. this only happens to the very first data being sent over the connection. and boh client and server suffers from this behaviour. what is this delay? is there a way to get rid of this? many thanks.

    Read the article

  • Images in IFRAME no longer showing after I log out of Flickr?

    - by contact-kram
    I have a iframe window which displays user's flickr images. I use the flickr.photos.search api to download the user's image from flickr. This works great when the user is logged into flickr. But when I explicitly log off the user from flickr and the yahoo network and then attempt to download the flickr images, I get redirected to www.yahoo.com in a full browser window (not in my iframe). If I remember correctly, I did not have this issue when I was not using iframes and I was being redirected to the yahoo login screen. Any suggestions? To elaborate, this URI - http://www.flickr.com/services/api/auth.howto.web.html, lists the below step - Create an auth handler When users follow your login url, they are directed to a page on flickr.com which asks them if they want to authorize your application. This page displays your application title and description along with the logo, if you uploaded one. When the user accepts the request, they are sent back to the Callback URL you defined in step 2. The URL will have a frob parameter added to it. For example, if your Callback URL was http://test.com/auth.php then the user might be redirected to http://test.com/auth.php?frob=185-837403740 (The frob value in this example is '185-837403740'). This does not happen when I am in my iframe window but it does happen in my full browser window.

    Read the article

  • Displaying performance metrics in a modern web app?

    - by Charles
    We're updating our ancient internal PHP application at work. Right now, we gather extensive performance measurements on every pageview, and log them to the database. Additionally, users requested that some of the metrics be displayed at the bottom of the page. This worked out pretty well for us, because the last thing that the application does on every request is include the file containing the HTML footer. The updated parts of the application use an MVC framework and a Dispatch/Request/Response loop. The page footer is no longer the last thing done. In fact, it could very well be the first thing done, before the rest of the page is created. Because we can grab the Response before it's returned to the user, we could try to include placeholders for the performance metrics in the footer and simply replace them with the actual numbers, but this strikes me as a bad idea somehow. How do you handle this in your modern web app? While we're using PHP, I'm curious how it's done in a Ruby/Rails app, and in your favorite Python framework.

    Read the article

  • Is multithreading the right way to go for my case?

    - by Julien Lebosquain
    Hello, I'm currently designing a multi-client / server application. I'm using plain good old sockets because WCF or similar technology is not what I need. Let me explain: it isn't the classical case of a client simply calling a service; all clients can 'interact' with each other by sending a packet to the server, which will then do some action, and possible re-dispatch an answer message to one or more clients. Although doable with WCF, the application will get pretty complex with hundreds of different messages. For each connected client, I'm of course using asynchronous methods to send and receive bytes. I've got the messages fully working, everything's fine. Except that for each line of code I'm writing, my head just burns because of multithreading issues. Since there could be around 200 clients connected at the same time, I chose to go the fully multithreaded way: each received message on a socket is immediately processed on the thread pool thread it was received, not on a single consumer thread. Since each client can interact with other clients, and indirectly with shared objects on the server, I must protect almost every object that is mutable. I first went with a ReaderWriterLockSlim for each resource that must be protected, but quickly noticed that there are more writes overall than reads in the server application, and switched to the well-known Monitor to simplify the code. So far, so good. Each resource is protected, I have helper classes that I must use to get a lock and its protected resource, so I can't use an object without getting a lock. Moreover, each client has its own lock that is entered as soon as a packet is received from its socket. It's done to prevent other clients from making changes to the state of this client while it has some messages being processed, which is something that will happen frequently. Now, I don't just need to protect resources from concurrent accesses. I must keep every client in sync with the server for some collections I have. One tricky part that I'm currently struggling with is the following: I have a collection of clients. Each client has its own unique ID. When a client connects, it must receive the IDs of every connected client, and each one of them must be notified of the newcomer's ID. When a client disconnects, every other client must know it so that its ID is no longer valid for them. Every client must always have, at a given time, the same clients collection as the server so that I can assume that everybody knows everybody. This way if I'm sending a message to client #1 telling "Client #2 has done something", I know that it will always be correctly interpreted: Client 1 will never wonder "but who is Client 2 anyway?". My first attempt for handling the connection of a new client (let's call it X) was this pseudo-code (remember that newClient is already locked here): lock (clients) { foreach (var client in clients) { lock (client) { client.Send("newClient with id X has connected"); } } clients.Add(newClient); newClient.Send("the list of other clients"); } Now imagine that in the same time, another client has sent a packet that translates into a message that must be broadcasted to every connected client, the pseudo-code will be something like this (remember that the current client - let's call it Y - is already locked here): lock (clients) { foreach (var client in clients) { lock (client) { client.Send("something"); } } } An obvious deadlock occurs here: on one thread X is locked, the clients lock has been entered, started looping through the clients, and at one moment must get Y's lock... which is already acquired on the second thread, itself waiting for the clients collection lock to be released! This is not the only case like this in the server application. There are other collections which must be kept in sync with the clients, some properties on a client can be changed by another one, etc. I tried other types of locks, lock-free mechanisms and a bunch of other things. Either there were obvious deadlocks when I'm using too much locks for safety, or obvious race conditions otherwise. When I finally find a good middle point between the two, it usually comes with very subtle race conditions / dead locks and other multi-threading issues... my head hurts very quickly since for any single line of code I'm writing I have to review almost the whole application to ensure everything will behave correctly with any number of threads. So here's my final question: how would you resolve this specific case, the general case, and more importantly: aren't I going the wrong way here? I have little problems with the .NET framework, C#, simple concurrency or algorithms in general. Still, I'm lost here. I know I could use only one thread processing the incoming requests and everything will be fine. However, that won't scale well at all with more clients... But I'm thinking more and more to go this simple way. What do you think? Thanks in advance to you, StackOverflow people which have taken the time to read this huge question. I really had to explain the whole context if I want to get some help.

    Read the article

  • Can I use WCF NET.TCP Protocol from Silverlight 4 for a public website ?

    - by pixel3cs
    Does anyone know if the new NET.TCP feature of Silverlight 4 can be used for public websites ? From what I know, in the Silverlight 4 Beta they announced that WCF NET.TCP can only be used for intranet applications. The reason I am asking this is because I want to recode my Silverlight multiplayer chess game (build with SL 3 Sockets support) based on the new SL 4 WCF TCP communication protocol. My Socket implementation is build from scratch and have big issues with thread safe and few unsolvable bugs from my side. I am sure that SL 4 team did a great job and they simplified all hard part for me, letting us, developers, concentrate more on the game code instead on underlying communication layers.

    Read the article

< Previous Page | 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105  | Next Page >